我的项目中有Invoice
和InvoiceItem
类
class Invoice(Model):
...
pdf = FileField(...
def save(...):
super().save(...)
self.generate_pdf()
def generate_pdf(self):
generate_pdf_from_self_and_invoiceitemset()
save_pdf()
class InvoiceItem(...):
item = ForeignKey('Invoice'...)
...
简单-我希望在创建或修改invoice
之后生成PDF文件。问题在于此PDF不仅取决于invoice
,而且也取决于invoice_items
。
如您所见,在创建或修改generate_pdf()
之前,super().save()
生成pdf
之后的InvoiceItem
方法。
我希望它在最后一个InvoiceItem
保存之后(或在保存Invoice
的情况下立即调用该方法)。
该怎么做?
我也可以将generate_pdf()
放入InvoiceItem.save
方法中,但是在任何保存之后多次生成pdf
会浪费时间和资源。
如果可能的话,我更喜欢在模型层上调用方法,这样就不会有人忘记将其放入新表单或管理表单中。