Django Querysets-ManyToMany中包含整个集合的对象

时间:2019-07-04 21:32:26

标签: django django-queryset

我有一个模型Respondent,它通过名为Questionnaire的{​​{1}}字段与另一个模型ManyToMany相关。

我有一组四个finished对象,并希望检索所有与所有四个对象具有Questionnaire关系的所有Respondent对象。

我还想获取反函数:与所有四个选定的finished对象没有Respondent关系的任何finished对象。

我一直在浏览the docs,但没有找到适合我的东西。我可以获取所有与Questionnaire的至少一个Respondent对象匹配的Questionnaire对象,但是据我所知。

1 个答案:

答案 0 :(得分:1)

您可以计算finishedquestionnaire_queryset个对象的数量,例如:

从django.db.models导入计数

Respondent.objects.filter(
    finished__in=questionnaire_queryset
).annotate(
    nfinish=Count('finished')
).filter(
    nfinish=len(questionnaire_queryset)
)

我们在这里假设questionnaire_queryset 不包含任何重复项。

相关问题