zoukankan      html  css  js  c++  java
  • Django-----多对多示例查询

    例--示范
    # 电影表
    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 %}
    
  • 相关阅读:
    团队冲刺第五天
    单词统计包括其续
    团队冲刺第四天
    团队冲刺第三天
    团队冲刺第二天
    团队冲刺第一天
    软件工程第九周总结
    软件工程第八周总结
    《大道至简》阅读笔记二
    《大道至简》阅读笔记一
  • 原文地址:https://www.cnblogs.com/xinzaiyuan/p/12382616.html
Copyright © 2011-2022 走看看