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',,则应该得到您想要的。