Если у вас есть взаимоотношения по моделям и их сигналам
тем не менее, вы можете отделить логику сигнала, чтобы иметь больше сигналов одного типа, и обрабатывать свою логику более изощренным способом:
Вы можете проверить сигналы, состояние объекта:
kwargs['created']
Вы можете проверить состояние любого вставленного дополнительного значения:
Итак, в одном сигнале вы сначала прочитаете:
if `kwargs['instance'].skip_signals`:
return
и в другом месте, перед save()
вы просто установите skip_signals
на конкретном объекте, в конкретной ситуации.
(нет необходимости определять его как поле модели)
Вы также можете не излучать сигналы:
- путем переопределения метода (ов) на моделях,
- или добавив собственный
save_without_signals()
,
- или, как уже упоминалось, делать
filter(pk=<>).update(...)