gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 19:33:19 25 4
gpt4 key购买 nike

Django docs仅列出覆盖 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() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2307943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com