Django write signal handler as class (запись обработчиков сигналов 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()
Тогда вы сможете включить инстанцированную версию в файл настроек или в любое другое место, где она вам понадобится.
Нечто подобное должно быть возможно. Но почему, могу я спросить?