【问题标题】:Django filter by group countDjango按组数过滤
【发布时间】:2014-03-18 08:56:59
【问题描述】:

对于模型,例如与模型 Topping 有一对多关系的比萨饼 如何查询只有 2 个 Toppings 的所有 Pizzas?

我之前对披萨进行了迭代,并对 Toppings 计数进行了单独查询,并且只将带有 2 的那个添加到了我的列表中。但我遇到了性能问题。

【问题讨论】:

    标签: python django


    【解决方案1】:

    您可以按注释过滤(在https://docs.djangoproject.com/en/dev/topics/db/aggregation/#filtering-on-annotations 中描述)

    doubles = ( Pizza
         .objects
         .annotate(num_toppings=Count('toppings'))
         .filter(num_toppings=2)
        )
    

    【讨论】:

      【解决方案2】:

      你有没有尝试过这样的事情:

      from django.db.models import Count
      
      Pizzas.objects.annotate(tc=Count('toppings')).filter(tc=1)
      

      【讨论】:

      • 操作我的连接挂了一点
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-20
      相关资源
      最近更新 更多