【问题标题】:django write signal handler as class (write class based django signal handlers)django write signal handler as class (write class based django signal handlers)
【发布时间】:2022-01-10 11:51:48
【问题描述】:
从 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):
...
是否可以将信号处理程序编写为类?
如果是怎么办?
【问题讨论】:
标签:
python
django
django-signals
【解决方案1】:
YourClass(Inheritance):
@receiver(pre_save, sender=MyModel)
def __call__(self, sender, **kwargs):
#your code
return
然后当你想使用这个类时,你可以导入它并编写:
my_handler = YourClass()
因此,您可以在设置文件或任何您需要的地方包含实例化版本。
这样的事情应该是可能的。但我为什么要问呢?