让我们说这个模型:
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。
答案 0 :(得分:2)
您需要先计算注释,然后才能对其进行过滤。
Transaction.objects.annotate(detail_sum=Sum("details__cost")).exclude(total_cost=F("detail_sum"))