Django聚合计数ForeignKey返回同一个ID的多个记录
问题描述:
模型结构是Question有一个Video,而Question有很多答案。Django聚合计数ForeignKey返回同一个ID的多个记录
问题查询:
questions = Question.objects\
.values('id', 'answer', 'section__title', 'title', 'created_at','user__username')\
.filter(video=v).annotate(answer_count=Count('answer'))
我使用的计数聚合函数添加一个额外的字段说一个问题,有多少的答案了。
它适用于零和一个答案。但是如果一个问题有三个答案,我会得到三个不同的行,它们具有相同的ID,answer_count = 1,'answer'字段的ID不同。
我在做什么错?
答
我不确定你的模型定义是什么。我假设你有这样的事情:
class Answer(models.Models):
question = models.ForeignKey(Question, related_name='answer')
当你查询你描述的方式,你会检索每个答案的行。如果您从values
呼叫中忽略'answer',
,则应该得到您想要的。