这是一个创建于 4223 天前的主题,其中的信息可能已经有所发展或是发生改变。
场景:
Class A:
pass
class B:
f1 = models.ManyToManyField('A',related_name='b')
f2 = models.BooleanField(default=False)
表里面有一个A instance a, 两个B instance 均有f1对应于a
查询:
A.objects.filter(b__f2 = 0)
结果返回了queryset [a,a],两个a instance。
这是怎么回事啊?正确的写法是什么呢?
3 条回复 2014-06-02 19:34:32 +08:00  | | 1 wenbinwu 2014-06-02 18:00:44 +08:00 1 print A.objects.filter(b__f2 = 0).query 看一下SQL就明白了:) |
 | | 2 ericFork 2014-06-02 19:20:13 +08:00 1 LS+1,workaround 是加上 .distinct() |
 | | 3 clker 2014-06-02 19:34:32 +08:00 |