#python #django #django-signals
Вопрос:
Из документов 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): ...
Можно ли записать обработчики сигналов в виде классов? Если да, ТО КАК?
Ответ №1:
YourClass(Inheritance): @receiver(pre_save, sender=MyModel) def __call__(self, sender, **kwargs): #your code return
А затем, когда вы захотите использовать этот класс, вы импортируете его и напишете:
my_handler = YourClass()
Таким образом, вы можете включить созданную версию в свой файл настроек или в любое другое место, где вам это нужно.
Что-то подобное должно быть возможно. Но почему я могу спросить?