我有两个模型Invoice
和InvoiceItems
,它们具有一对多的关系。
在整个代码库中,我们使用InvoiceItems
对象为给定的Invoice
创建Manager
:
invoice.invoice_items.create(...)
问题是,现在我们在尝试创建InvoiceItem
之前必须进行验证,并且通过代码库,重构所有创建部分将是一个令人头疼的问题。
我想知道是否有办法覆盖创建方法本身,还是我们应该选择模型的save()
?
答案 0 :(得分:0)
要修改Manager的方法,您需要创建自己的方法。鉴于以下情况:
# models
class MyModel(models.Model):
# ... fields
objects = MyManager()
class MyManager(models.Manager):
def create(self):
# write your own code here
pass
不要担心其他方法(filter
,delete
等),所有这些方法都会正常工作。
您可以找到有关自定义管理员here
的更多信息