首页 > 其他 > 详细

Django-----多对多示例查询

时间:2020-02-29 14:08:10      阅读:74      评论:0      收藏:0      [点我收藏+]
例--示范
# 电影表
class Move(models.Model):
name = models.CharField(max_length=50)
image_url = models.CharField(max_length=255)
class Meta:
db_table = 'move'
def __str__(self):
return self.name

# 演员表
class Action(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField()
gender = models.BooleanField(default=0)
move = models.ManyToManyField(Move,related_name='actor')
class Meta:
db_table = 'Action'
def __str__(self):
return self.name

ManyToManyField  ----写完迁移时会自动生成一张第三张表
 


    1. 借助多对多查询时用--------related_name='actor'
    2. 电影查询演员-----只需获取电影的id,用电影的id查询表first--
    # 电影id获取
    ids = request.GET.get('id')
    move = Move.objects.filter(id=ids).first()
    
    
    Html   里代码:---可以说,电影被谁主演是反查询
    {% for i in move.actor.all %}
    <tr>
    <td><a href="/goods/move_all?id={{i.id}}">          {{i.name}}</a></td>
    <td>{{i.age}}</td>
    <td>{% if i.gender == 1%}男
    {% else %}女
    {% endif %}</td>
    </tr>
    {% endfor %}
    
    
    3. 借助多对多查询时用--------move字段
    4. 查询演员拍的电影------只需要获取演员的id,用演员的id查询演员表first
    # 演员id获取
    ids = request.GET.get('id')
    action = Action.objects.filter(id=ids).first()
    
    Html   里代码:---可以说,电影被谁主演是正查询
    <h1>{{action.name}}主演的电影有</h1>
    
    {% for i in action.move.all %}
    {{i.name}}
{% endfor %}

Django-----多对多示例查询

原文:https://www.cnblogs.com/xinzaiyuan/p/12382616.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!