Django查询外键关系

时间:2017-10-04 17:58:36

标签: django django-models django-orm

让我们说,我在Django中有三个模型

用户

  • 名称
  • 用户名

  • 名称
  • 所有者ForeignKey(用户)

  • 名称
  • 所有者Foreignkey(用户)

现在我的问题是 -

算上有多少老板有django orm的狗和猫?或拥有狗和猫的业主总数。

会是什么样的加入?

1 个答案:

答案 0 :(得分:2)

您必须使用annotate计算每个用户的狗和猫的数量,然后过滤该数字大于0的位置。

from django.db.models import Count


User.objects.annotate(
    has_dog=Count('dog'),
    has_cat=Count('cat')
).filter(
    has_dog__gt=0,
    has_cat__gt=0
).count()