обработчик сигналов записи django как класс (обработчики сигналов django на основе классов записи)

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

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

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