Существует много сообщений о переполнении стека о рекурсии с использованием сигнала post_save
, на который комментарии и ответы подавляюще: "почему бы не переопределить save()" или сохранение, которое запускается только при created == True
.
Ну, я считаю, что хороший пример для использования save()
- например, я добавляю временное приложение, которое обрабатывает данные о выполнении заказов, полностью отделенные от нашей модели заказа.
Остальная часть фреймворка блаженно не осознает приложение исполнения, и использование hook_stats_save изолирует весь код, связанный с выполнением, от нашей модели заказа.
Если мы откажемся от службы исполнения, ничего о нашем базовом коде не изменится. Мы удаляем приложение для выполнения и что оно.
Итак, существуют ли приличные методы для обеспечения того, чтобы сигнал post_save не запускал один и тот же обработчик дважды?