【问题标题】:Django query for foreign key relationshipDjango查询外键关系
【发布时间】:2017-10-04 17:58:35
【问题描述】:

假设我在 Django 中有三个模型

用户

  • 姓名
  • 用户名

  • 姓名
  • 所有者外键(用户)

  • 姓名
  • 所有者外键(用户)

现在我的问题是 -

用 django orm 数一数有多少主人养了猫狗?或拥有狗和猫的业主总数。

会是什么样的加盟?

【问题讨论】:

    标签: django django-models django-orm


    【解决方案1】:

    您必须使用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() 也很重要,因为模型可能具有默认排序。
    猜你喜欢
    • 2020-01-02
    • 2014-07-22
    • 2012-10-10
    • 2020-04-20
    • 1970-01-01
    • 2011-12-06
    • 2010-09-10
    • 2016-07-29
    相关资源
    最近更新 更多