python - Django 1.2 : How to connect pre_save signal to class method

标签 python django signals python-2.7 django-1.2

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

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)

我读到有关将信号连接到类方法的信息 here , 但无法找出代码。

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

最佳答案

classmethod 的工作示例:

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

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

还有一个很棒的装饰器可以自动处理信号连接:http://djangosnippets.org/snippets/2124/

关于python - Django 1.2 : How to connect pre_save signal to class method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10904799/

相关文章:

django - 从 Django 运行 unix 命令

android - 将桌面和移动客户端连接到 Django 和 Sails MVC webframeworks

c++ - Qt QTcpSocket 读取数据时不发出信号

linux - 在信号处理程序中调用 exec() 以重新加载当前正在运行的进程

python - uWSGI 运行错误的 Python 版本

python - 如何使用 `re.sub()` 替换 str 的一部分?

python - 编写了一个按键监听器,但它执行了两次

Python 元组操作

python - 子进程 Popen : signal not propagating

python - GAE 数据存储实体的自动删除或过期