2013-01-05 188 views
1

我有以下問題:如何多個Django查詢集聚合和過濾器結合

class species(models.Model): 
    pass 

class question(models.Model): 
    species = models.ForeignKey(species) 

class answer(models.Model): 
    question = models.ForeignKey(question) 

現在我想檢索包含任何問題物種的查詢集沒有任何答案

我的意思是我可以用得到的是有疑問的所有種類:

sp = species.objects.annotate(num_questions=Count('question')).filter(
    num_questions__gt=0) 

而且我可以用得到沒有回答所有的問題:

qs = question.objects.annotate(num_answers=Count('answer')).filter(
    num_answers=0) 

但我怎麼結合兩件事情在一起?

在此先感謝!

回答

1

可以菊花鏈的註釋,像這樣:

sp = species.objects.annotate(num_questions=Count('question')).annotate(
      num_answers=Count('answer')).filter(num_questions__gt=0, num_answers=0) 
+0

感謝您的答案,但我想你是誤會我的問題。我的問題不是將結果列表連接在一起,而是檢索其意義在於兩個條件的連接的條目。 – guinny

+0

@chaiy我已經修改了我的答案 –