2011-06-03 76 views
0

模型結構是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不同。

我在做什麼錯?

回答

1

我不確定你的模型定義是什麼。我假設你有這樣的事情:

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

當你查詢你描述的方式,你會檢索每個答案的行。如果您從values呼叫中忽略'answer',,則應該得到您想要的。