Django 1.2:如何将pre_save信号连接到类方法


问题内容

我试图在我的django 1.2项目中的某些类中定义一个“ before_save”方法。我在将信号连接到models.py中的class方法时遇到麻烦。

class MyClass(models.Model):
    ....
    def before_save(self, sender, instance, *args, **kwargs):
        self.test_field = "It worked"

我尝试将pre_save.connect(before_save,sender =’self’)放入’MyClass’本身,但是什么也没发生。

我也尝试将其放在models.py文件的底部:

pre_save.connect(MyClass.before_save, sender=MyClass)

在这里阅读了有关将信号连接到类方法的信息,但无法弄清楚代码。

有人知道我在做什么错吗?


问题答案:

不应在MyClass上使用方法,而应使用函数。就像是:

def before_save(sender, instance, *args, **kwargs):
    instance.test_field = "It worked"

pre_save.connect(before_save, sender=MyClass)