Форум сайта python.su
Есть две модели
class Genre(models.Model):
...
class Film(models.Model):
genres = models.ManyToManyField(Genre)
Отредактировано (Фев. 7, 2011 18:59:57)
Офлайн
Lolka
Чтобы выбрать фильмы, которые есть хотя бы в одном из жанров (т.е. ИЛИ id=1 или id=2) можно написать Film.objects.filter(genres__id__in=), а как выбрать фильмы, которые есть в каждом из требуемых жанров (т.е. И id=1, id=2)?
from django.db.models import Q
Film.objects.filter(Q(genres__id=1) & Q(genres__id=2))
Офлайн
Не получается, возвращает 0 записей. Получается так: Film.objects.filter(genres__id=1).filter(genres__id=2)
Как быть?
Офлайн
LolkaНу так значит нет фильмов принадлежащих одновременно жанрам с id 1 и 2
Не получается, возвращает 0 записей.
Офлайн
Есть :) Такой чейн его возвращает: Film.objects.filter(genres__id=1).filter(genres__id=2)
Отредактировано (Фев. 8, 2011 17:45:51)
Офлайн
Да, действительно, так не работает
Film.objects.filter(Q(genres__id=1) & Q(genres__id=2))
Офлайн
Film.objects.filter(Q(genres__id=1), Q(genres__id=2))
Офлайн