【发布时间】:2013-07-07 08:06:52
【问题描述】:
我有两个这样的模型:
class Company(models.Model):
raising = models.DecimalField()
class Investment(models.Model):
company = models.ForeignKey(Company)
amount = models.DecimalField()
现在我想找出所有累计投资少于小于raising
如果我向 Company 添加一个名为 raised_so_far 的动态属性来汇总投资金额,我可以这样做:
Company.objects.filter(raised_so_far__lt=F('raising'))
但过滤发生在 SQL 级别,因此这是不可能的。
到目前为止,这是我最好的尝试:
Company.objects.filter(raising__gt=Investment.objects.filter(company=F(outer_company_object)).aggregate(Sum('amount'))['amount__sum'] or 0)
如何使用父对象过滤外键的聚合?
【问题讨论】:
标签: sql django django-models django-queryset