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