1
比方说,我有三个型号在DjangoDjango的查询外键关系
用户
- 名
- 用户名
狗
- 名
- 所有者ForeignKey的(用户)
猫
- 名
- 所有者外键(用户)
现在我的问题是 -
计数许多业主如何养狗和猫,与Django orm?或拥有狗和猫的所有者总数。
什么样的加入会是?
比方说,我有三个型号在DjangoDjango的查询外键关系
用户
狗
猫
现在我的问题是 -
计数许多业主如何养狗和猫,与Django orm?或拥有狗和猫的所有者总数。
什么样的加入会是?
你要算狗和猫的每个用户的数量与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()
能否请你添加一些背景和解释你的答案? –
+1对于模型的情况,添加[empty'order_by()'](https://docs.djangoproject.com/en/1.11/topics/db/aggregation/#order-by)也很重要可以有默认的顺序。 – hynekcer