【问题标题】: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()
    

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

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

    【讨论】:

      猜你喜欢
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 2016-12-27
      • 2018-08-20
      • 1970-01-01
      • 1970-01-01
      • 2016-11-27
      • 2011-08-11
      相关资源
      最近更新 更多