Django Как получить сумму столбцов после вычитания каждой строки?
Например, у меня есть товар, где цена "soldprice" была 10, "paid" была 2 и "shipcost" была 2. В настоящее время я делаю следующее:
@property
def profit(self):
if self.soldprice is not None and self.paid is not None and self.shipcost is not None:
return self.soldprice - self.paid - self.shipcost
А прибыль должна быть 6, (10 - 2 - 2). Затем я вызываю это свойство прибыли в шаблоне.
{% for inventory in inventory %}
<tr>
<td><a class='btn btn-success btn-sm' href=''>View Breakdown</a>
<td>{{inventory.id}}</td>
<td>{{inventory.product}}</td>
<td>{{inventory.description}}</td>
<td>{{ inventory.profit }}</td>
</tr>
{% endfor %}
Итак, я вижу ситуацию следующим образом:
ID Product Profit
----------------------------------------
6 dessert 8.80
7 bowls 3.37
8 bowls 16.32
15 chip 6.19
Каким образом лучше всего добавить столбец "Прибыль" после вызова свойства profit? Например, итоговая сумма будет 34.68, чтобы я мог отобразить ее в шаблоне. Любая помощь будет высоко оценена.
Поскольку прибыль не хранится в базе данных, вы не можете агрегировать ее в запросе ORM.
Однако вы можете легко просмотреть его в представлении и добавить его в контекст для вашего шаблона, предполагая, что инвентарь является набором записей:
running_total = 0
for i in inventory:
running_total += i.profit
context['total_profit'] = running_total
Затем просто включите его в нижнюю часть вашей таблицы/шаблона как {{total_profit}}