J'ai une table qui contient une liste de factures et leurs détails :
class Invoice(models.Model):
invoiceNum = models.CharField(etc...)
invoiceDate = models.DateField(etc...)
customerID = models.ForeignKey(etc...)
isPaid = models.CharField(etc...)
El Invoice
Les enregistrements ne contiennent pas le total réel de la facture. Au lieu de cela, le total d'une facture est composé de plusieurs éléments suivants Invoice_Line_Item
qui se trouvent dans une autre table :
class Invoice_Line_Item(models.Model):
invNum = models.ForeignKey(Invoice)
itemName = models.CharField(etc...)
itemPrice = models.DecimalField(etc...)
J'ai une application Web qui affiche toutes les factures dans un grand tableau HTML, ainsi que tous les détails de cette facture dans le tableau. tr
rang. Les détails tels que la date de facturation, le numéro de facture, l'identifiant du client, proviennent tous de cette ligne. Invoice
table. Il y a des centaines de factures à afficher dans ce tableau. HTML
table
.
J'aimerais également afficher la valeur totale de chaque facture, qui correspond à la somme de tous les postes. Cependant, je ne trouve pas de moyen simple d'y parvenir, car les détails de la facture et les postes qui constituent le total de la facture se trouvent dans deux tables différentes.
J'ai pensé qu'une façon de faire était de passer l'ensemble du Invoice_Line_Item
querySet dans le modèle HTML, puis pour chaque facture affichée dans un tableau tr
je pourrais itérer sur l'ensemble du Invoice_Line_Item
querySet, en additionnant tous les postes qui correspondent à la facture actuelle. Cette méthode semble toutefois très inefficace.
Avez-vous une meilleure idée de la façon de procéder ?
Merci !