让我们说,我在Django中有三个模型
用户
狗
猫
现在我的问题是 -
算上有多少老板有django orm的狗和猫?或拥有狗和猫的业主总数。会是什么样的加入?
答案 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()