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