Stile - Quando serializzare un'istanza del modello Django: segnali rispetto al metodo di salvataggio del modello

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

  •  02-07-2019
  •  | 
  •  

Domanda

Ho intenzione di serializzare un modello Django su XML quando viene salvato o aggiornato. (L'XML verrà importato in un filmato flash). È meglio ascoltare un segnale post_save () o pre_save () e quindi eseguire la serializzazione o semplicemente gestirlo nel methon save () del modello

È stato utile?

Soluzione

Se è la funzionalità principale per salvare il modello, lo vorrai come parte del metodo di salvataggio. Tuttavia, se hai già un modello funzionante e desideri estenderlo per altri scopi, i segnali sono la soluzione migliore in quanto consentono moduli correttamente disaccoppiati.

Un buon esempio potrebbe essere che si desidera aggiungere la registrazione degli eventi al proprio sito, quindi è sufficiente ascoltare i segnali che indicano un evento anziché modificare il codice del sito originale.

post_save () di solito è meglio perché significa che il modello è stato salvato con successo, l'uso di pre_save () non garantisce che il salvataggio avrà esito positivo, quindi non dovrebbe essere usato per nulla che dipenda dal completamento del salvataggio.

Altri suggerimenti

Pubblica salvataggio. In questo modo i nuovi dati (il motivo per eseguire la serializzazione) sono già nel database. Sarà un po 'più pulito di codice che prende semplicemente dal database e non deve preoccuparsi di aggiungere un valore extra.

L'altro modo che viene in mente è quello di mantenere il file XML in parallelo al database. Vale a dire, nel tuo save () aggiungi i dati al database e al file xml. Questo avrebbe un sovraccarico molto meno se hai a che fare con tavoli enormi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top