【发布时间】:2012-02-23 15:08:33
【问题描述】:
每当创建特定 django 模型的实例时,我都想进行额外的初始化。我知道overriding __init__ can lead to trouble。我应该考虑哪些其他替代方案?
更新。其他详细信息: 目的是初始化该模型的实例所代表的状态机。这个状态机由一个导入的库提供,它的内部状态由我的 django-model 持久化。这个想法是,每当加载模型时,状态机都会自动使用模型的数据进行初始化。
【问题讨论】:
-
你误解了这个问题。这并不是说覆盖
__init__不起作用,OP 只是做错了。您可以随意覆盖__init__,但其效果完全取决于您到底想要做什么。所以你为什么不告诉我们,这样我们才能真正帮助你。 -
谢谢,我已经重读了另一个线程。你的意思是,如果我保留签名
(self, *args, **kwargs),覆盖 __init__ 就不会影响 django 的方式? -
我在问题中添加了更多信息以阐明意图。
标签: django django-models