我有以下问题:
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)
但我如何将两者结合在一起呢?
提前感谢!
答案 0 :(得分:1)
您可以像这样菊花链式注释:
sp = species.objects.annotate(num_questions=Count('question')).annotate(
num_answers=Count('answer')).filter(num_questions__gt=0, num_answers=0)