簡體   English   中英

如何結合多個Django queryset聚合和過濾器

[英]how to combine multiple django queryset aggregates and filters

我有以下問題:

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)

但是,如何將這兩件事結合在一起?

提前致謝!

您可以像這樣通過菊花鏈方式注釋:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM