Style - Wenn eine Django-Modell Instanz serialisiert: Signale vs Modell Methode speichern

StackOverflow https://stackoverflow.com/questions/131327

  •  02-07-2019
  •  | 
  •  

Frage

Ich plane ein Django-Modell XML serialisiert werden, wenn es gespeichert oder aktualisiert. (Die XML geht in einen Flash-Film importiert werden). Ist es besser, für eine post_save zu hören () oder pre_save (Signal) und dann die Serialisierung durchführen oder einfach es ist nur in dem Modell Griff () Methon

War es hilfreich?

Lösung

Wenn es Kernfunktionalität ist das Modell für das Speichern Sie es als Teil der Speichermethode wollen werden. Wenn Sie jedoch bereits ein funktionierendes Modell haben, und Sie wollen, dass es für andere Zwecke erweitern dann Signale sind die beste Wahl, da sie für richtig entkoppelt Module ermöglichen.

Ein gutes Beispiel hierfür könnte sein, dass Sie die Ereignisprotokollierung zu Ihrer Website hinzufügen wollen, so können Sie einfach für die Signale hören, die ein Ereignis bedeuten, anstatt den ursprünglichen Standortcode modifiziert wird.

post_save () ist in der Regel am besten, weil es bedeutet, dass das Modell erfolgreich gespeichert wurde, mit pre_save () garantiert nicht, dass das so erfolgreich sein sparen sollte nicht für alles verwendet werden, die auf dem fertigen Speicher werden abhängen.

Andere Tipps

Post speichern. Auf diese Weise werden die neuen Daten (der Grund für die Durchführung der Serialisierung) ist bereits in der Datenbank. Es wird für ein viel sauberes Stück Code machen, die einfach aus der Datenbank erfolgt und keines über das Hinzufügen von einem zusätzlichen Wert sorgen.

Die andere Art und Weise, die den Sinn kommt, ist die XML-Datei, die parallel zu der Datenbank zu erhalten. Das heißt, in der save (), um die Daten in die Datenbank hinzuzufügen und zu der XML-Datei. Dies würde einen viel weniger Aufwand, wenn Sie mit großen Tabellen zu tun haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top