Django post_save evita la recursión sin anular el modelo guardar ()

Hay muchos mensajes de desbordamiento de pila sobre recursión utilizando elpost_save señal, a la que los comentarios y las respuestas son abrumadoramente: "¿por qué no invalidar guardar ()" o una salvación que solo se dispara?created == True.

Bueno, creo que hay un buen caso para no usarsave() - por ejemplo, estoy agregando una aplicación temporal que maneja los datos de cumplimiento de pedidos completamente separados de nuestro modelo de pedido.

El resto del marco es felizmente inconsciente de la aplicación de cumplimiento y el uso de ganchos post_save aísla todo el código relacionado con el cumplimiento de nuestro modelo de pedido.

Si abandonamos el servicio de cumplimiento, nada de nuestro código central tiene que cambiar. Eliminamos la aplicación de cumplimiento, y eso es todo.

Entonces, ¿hay algún método decente para garantizar que la señal post_save no active el mismo controlador dos veces?

Respuestas a la pregunta(8)

Su respuesta a la pregunta