查询Django中相关模型Sum的属性

时间:2016-05-11 21:11:51

标签: django postgresql

让我们说这个模型:

class Transaction(Model):
    total_cost = DecimalField

class TransactionDetail(Model):
    transaction = ForeignKey(Transaction, related_name="details")
    cost = DecimalField

任何交易都应该具有与之相关的每个TransactionDetail的总成本总和。

我怎么能这样查询?

Transaction.objects.exclude(total_cost = Sum("details__cost"))

我正在使用Django 1.8和postgresql。

1 个答案:

答案 0 :(得分:2)

您需要先计算注释,然后才能对其进行过滤。

Transaction.objects.annotate(detail_sum=Sum("details__cost")).exclude(total_cost=F("detail_sum"))
相关问题