Django Querysets - объекты, включающие весь набор в ManyToMany - PullRequest
1 голос
/ 05 июля 2019

У меня есть модель Respondent, связанная с другой моделью Questionnaire через поле ManyToMany с именем finished.

У меня есть набор из четырех Questionnaire объектов, и я хотел быполучить все Respondent объекты, имеющие отношение finished со всеми четырьмя.

Я также хотел бы получить обратное: любой объект Respondent, который не имеет отношения finished со всеми четырьмяВыбранные Questionnaire объекты.

Я просматривал документы и не нашел чего-то подходящего для меня.Я могу получить все Respondent объекты, которые соответствуют по крайней мере одному из Questionnaire объектов с Respondent.objects.filter(finished__in=questionnaire_queryset), но это насколько я получил.

1 Ответ

1 голос
/ 05 июля 2019

Вы можете посчитать количество finished объектов, находящихся в questionnaire_queryset, например:

из django.db.models import Count

Respondent.objects.filter(
    finished__in=questionnaire_queryset
).annotate(
    <b>nfinish=Count('finished')</b>
).filter(
    <b>nfinish=len(questionnaire_queryset)</b>
)

Мы делаем предположениездесь questionnaire_queryset не не содержит дубликаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...