Django-重写Model.create()方法?

在Django文档只列出了重写的例子save()delete()。但是,我只想在模型创建时为它们定义一些额外的处理。对于熟悉Rails的任何人来说,这等同于创建:before_create过滤器。这可能吗?

回答:

__init__()每当实例化对象的python表示形式时,覆盖将导致执行代码。我不知道rails,但是一个:before_created过滤器听起来像是在数据库中创建对象时要执行的代码。如果要在数据库中创建新对象时执行代码,则应重写save(),检查该对象是否具有pk属性。代码看起来像这样:

def save(self, *args, **kwargs):

if not self.pk:

# This code only happens if the objects is

# not in the database yet. Otherwise it would

# have pk

super(MyModel, self).save(*args, **kwargs)

以上是 Django-重写Model.create()方法? 的全部内容, 来源链接: utcz.com/qa/434220.html

回到顶部