我有一个django应用程序,模型如下:
-
A
Question
型号 -
一个
Answer
模型,将ForeignKey返回问题 . (一个问题可以有多个答案 . ) -
A
Flag
型号,带有答案的ForeignKey . (答案可能被标记为不合适 . )
以上所有内容都有一个 user
字段,用于定义创建该对象的用户 .
我正在尝试获取所有问题的列表,其中包含当前用户已被标记的答案 . 我试过这个:
Question.objects.filter(answer__user=user).\
filter(answer__flag__isnull=False).distinct()
...但我相信这将返回一个问题列表,其中包含当前用户的答案以及已被标记的答案,但不一定能保证它是已被标记的用户答案 .
是否有捷径可寻?基本上,我想让过滤器的 answer
部分引用它们的相同答案 .
如果不清楚,请告诉我 .
2 回答
查询完全符合您的要求,但您应该过滤标志为 not
null
的问题 . 链接过滤器一起编辑,因此它会过滤掉所有具有特定用户答案的问题,然后针对标记的答案过滤该集合 .您也可以将这两个标准放在同一个
filter
电话中:怎么样:
编辑:当然,这不会返回查询集 . 并且为了防止重复的问题,可以将列表理解包装在set()中 .