django中两个查询集的交集

时间:2010-04-27 06:22:25

标签: python django

我不能在两个查询集上执行AND。如,q1& Q2。我得到空集,我不知道为什么。我用最简单的情况对此进行了测试。我正在使用django 1.1.1

我基本上有这样的对象:

item1
   name="Joe"
   color = "blue"
item2
   name="Jim"
   color = "blue"
   color = "white"
item3
   name="John"
   color = "red"
   color = "white"

关于多对多关系或我缺少什么,有什么奇怪的吗?

queryset1 = Item.objects.filter(color="blue")
这给出了(item1,item2)

queryset2 = Item.objects.filter(color="white")
这给出了(item2,item3)

queryset1 & queryset2给了我空集[]
OR运算符工作正常(我正在使用“|”)

为什么会这样?

2 个答案:

答案 0 :(得分:3)

qs = Item.objects.filter(color__in=['blue','white'])

答案 1 :(得分:1)

Item.objects.filter(color="blue").filter(color="white")