gpt4 book ai didi

Django - 显示记录表的总和

转载 作者:行者123 更新时间:2023-12-02 02:23:29 25 4
gpt4 key购买 nike

我有一个表格,其中包含发票列表及其详细信息:

class Invoice(models.Model):
invoiceNum = models.CharField(etc...)
invoiceDate = models.DateField(etc...)
customerID = models.ForeignKey(etc...)
isPaid = models.CharField(etc...)

发票记录不保存实际的发票总额。相反,发票的总计由多个 Invoice_Line_Item 记录组成,保存在另一个表中:

class Invoice_Line_Item(models.Model):
invNum = models.ForeignKey(Invoice)
itemName = models.CharField(etc...)
itemPrice = models.DecimalField(etc...)

我有一个网络应用程序,它在一个大的 HTML 表格中显示所有发票,并在表格的 tr 行上显示该发票的所有详细信息。发票日期、发票编号、客户 ID 等详细信息均来自该Invoice 表。此 HTML 表格 中显示了数百张发票。

我还想做的是显示每张发票的总值(value) - 这是所有行项目的总和。但是,我想不出一种简单的方法来完成此操作,因为发票详细信息和构成发票总额的行项目位于两个不同的表中。

我想到的一种方法是将整个 Invoice_Line_Item 查询集传递到 HTML 模板中,然后对于表 tr 中显示的每张发票,我可以迭代整个 Invoice_Line_Item querySet,添加与当前发票匹配的所有行项目。然而,这似乎效率极低。

关于如何做到这一点有更好的想法吗?

谢谢!

最佳答案

一个字:聚合

Invoice_Line_Item.objects.filter(invNum=invoice).aggregate(Sum('itemPrice'))

https://docs.djangoproject.com/en/dev/topics/db/aggregation/

另一种方法是将总计存储在 Invoice 中,并在您更改相关 Invoice_Line_Item 时更新它

关于Django - 显示记录表的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7463169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com