У меня есть модель «Фильмы и участники», и она выглядит следующим образом:
class Movie(models.Model):
something something
participants = models.ManyToManyField(Participant)
class Participant(models.Model):
something something
type = models.CharField(max_length=127, null=True, blank=True)
Я хотел бы проверить поле Участники тип с указанным списком и в соответствии с в нем перечислены фильмы или нет.
Например, у меня есть type_list=["Adults", "Children", "Senior"]
, но у объекта Mov ie есть 2 объекта-участника, один из которых - type="Adults"
, а другой - type="Children"
В примере я не ожидал бы показать эти фильмы, поскольку в нем нет всех необходимых типов участников.
Что я пробовал до сих пор;
movie.participants.filter(type__in=["Adults", "Children", "Senior"])
однако, это возвращает объект с двумя участниками
movie.participants.filter(Q(type="Adults") | Q(type="Children") | Q(type="Senior")):
этот также возвращает объект с двумя участниками.
Я также не могу использовать оператор &.
Единственная идея, с которой я остался, - это проверить количество участников. Query вернул два, но у меня есть три участника, поэтому я не могу показать этот mov ie, но проблема в том, что в этом списке есть переменная, исходящая из внешнего интерфейса. Таким образом, мой запрос и оператор if должны быть обобщенными c, и я не знаю, как это сделать, и я также на 100% уверен, что должна быть лучшая практика, а не эта.
Я был бы признателен каждая крошечная помощь, спасибо!