Django - Сигнал разъединения с несколькими получателями

Я использую сигналы pre_save и post_save в своем приложении с большим количеством приемников на них. Например :

@receiver(post_save, sender=SrdRevisionDocument)
@receiver(post_save, sender=SrdRevisionWording)
@receiver(post_save, sender=SrdRevisionAcronym)
@receiver(post_save, sender=SrdRevisionRevision)
@receiver(post_save, sender=SrdRevisionTableRequest)
@receiver(post_save, sender=SrdRevisionTable)
def handle_added_or_edited_element(sender, instance, **kwargs):
   ... content of the signal

Однако в некоторых случаях мне нужно отключить сигнал, чтобы иметь только обычное поведение метода save().

Я попробовал простой метод из документации Django Signal.disconnect(receiver=None, sender=None, dispatch_uid=None), но он не работает с несколькими приемниками.

Кроме того, я пробовал некоторые решения из StackOverflow, например Context Manager, но ни одно из них не работает с несколькими приемниками (т. е. Отключите сигналы для моделей и снова подключитесь в django).

Я знаю, что я не единственный, кто сталкивается с этой проблемой, но я не нашел решения.

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