【发布时间】:2018-10-03 14:42:49
【问题描述】:
我正在使用 Django 1.6。 我的模型看起来像:
Class Transaction(models.Model):
type = models.CharField(max_length=255, db_index=True)
amount = models.DecimalField(decimal_places=2, max_digits=10, default=0.00)
我的交易很少,其中很少是贷方,其他是借方(由类型列确定)。我需要检查所有交易的余额,即(借方 - 贷方)
目前,我可以使用以下 2 个查询来做到这一点:
debit_amount=Transaction.objects.fitler(type='D').aggregate(debit_amount=Sum('amount'))['debit_amount']
credit_amount=Transaction.objects.fitler(type='C').aggregate(credit_amount=Sum('amount'))['credit_amount']
balance = debit_amount - credit_amount
我看起来像:
Transaction.objects.aggregate(credit=Sum('amount', filter=Q(type='C')), debit=Sum('amount', filter=Q(type='D')))
【问题讨论】:
标签: django postgresql django-models orm django-queryset