В Django у меня есть модель, где я регистрирую транзакцию (дата, сумма, поля описания). На мой взгляд, я хотел бы показать текущий баланс, что-то вроде этого:
Date | Description | Amount | Balance
----------------------------------------------
2019-01-01 | Item 1 | $100 | $100
2019-01-02 | Item 2 | -$10 | $90
2019-01-03 | Item 3 | $200 | $290
2019-01-04 | Item 4 | $10 | $300
Теперь проблема в том, что BALANCE, конечно, должен быть рассчитан путем суммирования предыдущего баланса и текущей транзакции. Для меня, кажется, имеет смысл сделать этот расчет внутри представления. Я не знал бы другого разумного способа поместить это где-нибудь еще. Это верно? Если так, каков наилучший способ сделать это? Если нет, то как правильно это сделать?
class Transaction(models.Model):
date = models.DateField()
amount = models.DecimalField(max_digits=15, decimal_places=2)
account = models.ForeignKey(BankAccount, on_delete=models.CASCADE)
description = models.TextField(null=True, blank=True)
На мой взгляд:
transactions = Transaction.objects.filter(account__id=100).order_by("date")