【发布时间】:2019-05-05 20:14:10
【问题描述】:
我有一个相当简单的任务来使用聚合值过滤模型,例如:
class A(models.Model):
title = models.CharField()
address = models.CharField()
page_count = models.IntegerField()
现在我需要选择所有 A 的总和等于相同地址的 page_count 的标题,例如 2。如果我不需要标题,那就很容易了:
A.objects.all().values('address').annotate(pages=Sum(page_count)).filter(pages=2)
但是,如果我需要为每个“行”选择所有“包含”在该行中的 As,该怎么办。
例如,我们有三个模型:
A(title='X', 'address'='aa', page_count=1)A(title='Z', 'address'='aa', page_count=1)A(title='Y', 'address'='bb', page_count=1)
我只想显示那些页数摘要等于 2(即“X”和“Z”)的标题,这些标题使用地址分组。
这可以在一个查询中实现吗? prefetch_related 可能吗?
【问题讨论】:
-
what if I need for every "row" to select all As which are "included" in this row.是什么意思? -
我加了一个例子
标签: python django orm django-orm