django将信号处理程序写为类(写基于类的django信号处理程序)



从django文档中可以清楚地看出,我们可以将信号处理程序编写为函数。

from django.db.models.signals import pre_save
from django.dispatch import receiver
from myapp.models import MyModel

@receiver(pre_save, sender=MyModel)
def my_handler(sender, **kwargs):
...

是否可以将信号处理程序编写为类?如果是,如何?

YourClass(Inheritance):
@receiver(pre_save, sender=MyModel)
def __call__(self, sender, **kwargs):
#your code
return

然后,当你想使用这个类时,你会导入它并写下:

my_handler = YourClass()

因此,你可以在你的设置文件中或任何你需要的地方包含一个实例化的版本

这样的事情应该是可能的。但我为什么要问呢?

最新更新