外键上的Django聚合计数返回相同ID的多个记录

时间:2011-06-03 17:43:02

标签: python django

模型结构是问题有一个视频,而问题有很多答案。

问题查询是:

questions = Question.objects\
  .values('id', 'answer', 'section__title', 'title', 'created_at','user__username')\
  .filter(video=v).annotate(answer_count=Count('answer'))

我正在使用Count聚合函数添加一个额外的字段来说明问题有多少答案。

它适用于零和一个答案。但如果一个问题有三个答案,我会使用相同的ID返回三个不同的行,其中answer_count = 1,并且“answer”字段的ID不同。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我不确定你的模型定义是什么。我假设你有类似的东西:

class Answer(models.Models):
    question = models.ForeignKey(Question, related_name='answer')

当您按照描述的方式查询时,每个答案将检索一行。如果您从'answer',电话中省略values,则应该得到您想要的内容。