Django通过汇总保留详细信息进行过滤

时间:2018-12-04 11:49:21

标签: python django orm django-orm

我有一个相当简单的任务来使用聚合值过滤模型,例如:

class A(models.Model):
    title = models.CharField()
    address = models.CharField()
    page_count = models.IntegerField()

现在,对于相同的地址,我需要选择所有A等于page_count的所有A.objects.all().values('address').annotate(pages=Sum(page_count)).filter(pages=2) 标题。如果我不需要标题,那将很容易:

A

但是如果我需要为每个“行”选择此行中“包括”的所有A(title='X', 'address'='aa', page_count=1),该怎么办?

例如,我们有三种模型:

  1. A(title='Z', 'address'='aa', page_count=1)
  2. A(title='Y', 'address'='bb', page_count=1)
  3. prefetch_related

我只想显示那些标题,这些标题的总页数等于2(即“ X”和“ Z”),并使用地址分组。

在一个查询中有可能吗?可能#deny indonesia spam by its refering sites RewriteEngine on RewriteCond %{HTTP_REFERER} \bxnxx\b [NC] RewriteRule .* - [F]

1 个答案:

答案 0 :(得分:0)

您可以尝试这样:

A.objects.all().values('address').annotate(pages=Sum(page_count)).filter(pages=2).values('title')