django之表多对多查询

复制代码
 1 class Boy(models.Model):
 2     name = models.CharField(max_length=32)
 3     
 4 class Girl(models.Model):
 5     nick = models.CharField(max_length=32)
 6     
 7 class Love(models.Model):
 8     b = models.ForeignKey('Boy')
 9     g = models.ForeignKey('Girl')
10     
11 # 多对多连表查询  普通查询
12 love_list = Love.objects.filter(b__name='方少伟')
13 for row in love_list:
14     print(row.g.nick) # 在这还再需要连表
15     
16 # 多对多连表查询  直接连表查询完成
17 love_list = Love.objects.filter(b__name='方少伟').values('g__nick')  # love_list里面全是字典
18 for row in love_list:
19     print(row['g__nick']) # 在这不再需要连表
20     
21 # 多对多连表查询  直接连表查询完成
22 love_list = Love.objects.filter(b__name='方少伟').select_related('g') # love_list里面全是queryset对象
23 for row in love_list:
24     print(row.g.nick) # 在这不再需要连表
复制代码

 

posted @   高汤  阅读(1600)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示