The Django 文档 http://docs.djangoproject.com/en/dev/topics/db/models/#overriding-predefined-model-methods仅列出覆盖的示例save()
and 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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)