以下是相关的App和Classes。尝试获取属于发票的所有组件的金额总和,并将其保存在" sub_total'发票领域。发票sub_total =发票实例的所有组件的金额总和。会有什么方法?提前谢谢。
from stock.models import Part
class Invoice(models.Model):
invoice_number = models.CharField(max_length=250)
sub_total = models.DecimalField(max_digits=8, decimal_places=2)
class Component(models.Model):
invoice = models.ForeignKey('Invoice',)
stock = models.ForeignKey('stock.Part',)
qty = models.SmallPositiveIntegerField()
unit_price = models.DecimalField(max_digits=8, decimal_places=2)
amount = models.DecimalField(max_digits=8, decimal_places=2)
答案 0 :(得分:0)
经过几个小时的尝试后,我终于得到了线索,现在情况正常。我不想在视图或模板中复杂的东西。
以下链接有一个很好的例子,并从下面学习,进一步的测试似乎工作正常。
https://github.com/mwolff44/django-simple-invoice/blob/master/invoice/models.py 在第194行附近,显示了类似下面的内容,告诉我们该做什么的线索。
以下类似于我的" Invoice"类 ....
def total(self):
total = Decimal('0.00')
for item in self.items.all():
total = total + item.total()
return total
然后在Item(Component,在我的例子中)Class中。在第281行附近,显示如下所示的内容。虽然这已经得到了更早的处理,但是其他人可能会觉得这很有用。 ...
def total(self):
total = Decimal(str(self.unit_price * self.quantity))
return total.quantize(Decimal('0.01'))
再次,非常感谢Mathias WOLFF,https://github.com/mwolff44