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?