使用普通的Django查询集,如果我想检索其“a”属性为1,2或3的所有myObject,我会执行以下操作:
myObjects.objects.filter(a_in=[1,2,3])
但我想使用Q对象来做这件事。如何用Q对象编写等效查询?
答案 0 :(得分:2)
它可以立即使用。
Q(a__in=[1, 2, 3])
可能你的问题是你使用的是一个下划线而不是两个。
答案 1 :(得分:2)
它应该是这样的:
myObjects.objects.filter(Q(a = 1) | Q( a = 2) | Q( a = 3))
我不知道你为什么要这样做,但你也可以这样做
myObjects.objects.filter(Q(a__in=[1,2,3])
答案 2 :(得分:1)
q = Q(a__in=[1,2,3])
#q = Q(('a__in', [1,2,3]))
myObjects.objects.filter(q)
编辑:Bah没关系,不需要元组。