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) # 在这不再需要连表
原文地址:https://www.cnblogs.com/xiongfanyong/p/13022332.html