У меня есть таблица со списком счетов и их реквизитами:
class Invoice(models.Model):
invoiceNum = models.CharField(etc...)
invoiceDate = models.DateField(etc...)
customerID = models.ForeignKey(etc...)
isPaid = models.CharField(etc...)
Записи Invoice
не содержат фактическую сумму счета. Вместо этого сумма счета-фактуры состоит из нескольких записей Invoice_Line_Item
, которые хранятся в другой таблице:
class Invoice_Line_Item(models.Model):
invNum = models.ForeignKey(Invoice)
itemName = models.CharField(etc...)
itemPrice = models.DecimalField(etc...)
У меня есть веб-приложение, которое показывает все счета в большой таблице HTML, а также все детали этого счета в строке tr
таблицы. Такие данные, как дата выставления счета, номер счета, идентификатор клиента, все взяты из этой таблицы Invoice
. В этом HTML
table
.
отображаются сотни счетов.
То, что я хотел бы сделать, это также показать общую стоимость каждого счета-фактуры, которая является суммой всех позиций. Однако я не могу придумать простого способа сделать это, поскольку детали счета и позиции, составляющие сумму счета, находятся в двух разных таблицах.
Один из способов, который я подумал - передать весь набор запросов Invoice_Line_Item
в шаблон HTML, а затем для каждого счета-фактуры, отображаемого в таблице tr
, я мог бы выполнить итерацию всего набора запросов Invoice_Line_Item
, суммируя все позиции которые соответствуют текущему счету. Это, однако, кажется чрезвычайно неэффективным.
Есть лучшие идеи, как это сделать?
Спасибо!