Django中两个查询集的交集

3

我无法对两个查询集执行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(我使用的是 "|")可以正常工作

为什么会这样?


1
你能否为Item和Color添加模型类? - Yaroslav
属性只能有单个值,因此无法拥有那样的对象。 - Ignacio Vazquez-Abrams
2个回答

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接