Django post_save Verhindert die Rekursion, ohne das Speichern des Modells zu überschreiben ()

Es gibt viele Stapelüberlauf-Posts zum Thema Rekursion mit derpost_save Signal, auf das die Kommentare und Antworten überwältigend lauten: "Warum nicht save () überschreiben?"created == True.

Nun, ich glaube, es gibt einen guten Grund, es nicht zu benutzensave() - Ich füge beispielsweise eine temporäre Anwendung hinzu, die Auftragserfüllungsdaten vollständig getrennt von unserem Auftragsmodell verarbeitet.

Der Rest des Frameworks kennt die Fulfillment-Anwendung glücklicherweise nicht und die Verwendung von post_save-Hooks isoliert den gesamten Fulfillment-Code aus unserem Bestellmodell.

Wenn wir den Fulfillment-Service einstellen, muss sich nichts an unserem Kerncode ändern. Wir löschen die Fulfillment-App und das war's.

Gibt es also angemessene Methoden, um sicherzustellen, dass das Signal post_save nicht denselben Handler zweimal auslöst?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage