这是一个创建于 3793 天前的主题,其中的信息可能已经有所发展或是发生改变。
场景:
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
|