Пересечение двух наборов запросов в Django - PullRequest
2 голосов
/ 27 апреля 2010

Я не могу сделать 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")
это дает (пункт1, пункт2)

queryset2 = Item.objects.filter(color="white")
это дает (пункт2, пункт3)

queryset1 & queryset2 дает мне пустой набор []
Оператор OR работает нормально (я использую "|")

Почему это так?

Ответы [ 2 ]

3 голосов
/ 27 апреля 2010
qs = Item.objects.filter(color__in=['blue','white'])
1 голос
/ 28 апреля 2010
Item.objects.filter(color="blue").filter(color="white")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...