模拟测试用例:
def testCount(self):
qs = Test.objects.all()
qs = qs.annotate(a_count=Count('a_items'), b_count=Count('b_items'))
for item in qs:
print 'a_count: %d, b_count: %d' % (item.a_count, item.b_count)
qs1 = qs.filter(Q(a_count__gt=0))
self.assertEquals(qs1.count(), 1)
qs2 = qs.filter(Q(a_count__gt=0) | Q(b_count__gt=0))
self.assertEquals(qs2.count(), 1)
输出:
a_count: 1, b_count: 0
a_count: 0, b_count: 0
...
FAIL: testCount
self.assertEquals(qs2.count(), 1)
AssertionError: 0 != 1
为什么|运营商改变这样的行为,我该如何解决?
答案 0 :(得分:2)
从v1.2.4开始看起来这仍然是open issue。
我猜你要测试bug report中提供的其中一个补丁,或者试用raw queries,然后才能正式修复。