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()

Тогда вы сможете включить инстанцированную версию в файл настроек или в любое другое место, где она вам понадобится.

Нечто подобное должно быть возможно. Но почему, могу я спросить?

Вернуться на верх