模型结构是问题有一个视频,而问题有很多答案。
问题查询是:
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不同。
我做错了什么?
答案 0 :(得分:1)
我不确定你的模型定义是什么。我假设你有类似的东西:
class Answer(models.Models):
question = models.ForeignKey(Question, related_name='answer')
当您按照描述的方式查询时,每个答案将检索一行。如果您从'answer',
电话中省略values
,则应该得到您想要的内容。