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 %}
    
  • 相关阅读:
    EF ObjectQuery查询及方法
    Entity Framework --Entity SQL注意事项
    EF中Entity SQL用法
    Navicat for Oracle设置唯一性和递增序列
    Oracle添加自增长字段方法步骤
    MVC5项目中添加Wep API
    C#版 Winform界面 Socket编程 Client客户端
    C#版 Winform界面 Socket编程 Server服务器端
    给缺少Python项目实战经验的人
    python模块之collections
  • 原文地址:https://www.cnblogs.com/xinzaiyuan/p/12382616.html
Copyright © 2011-2022 走看看