在3方式关系模型中(让我们说Poll-> Questions-> Choices)我试图只显示至少有一个问题至少有2个选项的民意调查。 如果民意调查有50个问题且所有这些问题都有0或1个选择,则不应显示此民意调查。
到目前为止我所拥有的:
polls = Poll.objects.annotate(
num_questions=Count('question')).filter(
num_questions__gt=0)
这正确地让我得到了有问题的民意调查。但有些人甚至没有选择,或者不到两个,所以我不想看到这些民意调查。
到目前为止我尝试了什么:
polls = Poll.objects.annotate(
num_questions=Count('question')).filter(
num_questions__gt=0).filter(
question__choice_set__gte=1)
这会打印"Relation fields do not support nested lookups"
和
polls = Poll.objects.annotate(
num_questions=Count('question')).filter(
num_questions__gt=0).annotate(
num_choices=Count('choice_set')).filter(
num_choices__gt=1)
并打印:Cannot resolve keyword 'choice_set' into field. Choices are: id, num_questions, poll_enabled, poll_skippable, poll_title, question
现在我有点想法了。如果有人必须这样做或者只是知道该怎么做,我很乐意接受任何帮助。