2012-12-20 12 views
6

Per tutti i miei bisogni di Django che richiede il metodo di salvataggio, ho utilizzato save() nei miei modelli. All'improvviso, quando stavo guardando qualcosa che richiedeva un po 'di flare in più, qualcuno ha suggerito di ignorare lo save_model() nella mia classe di amministrazione.Differenza tra save e save_model()

Ho trovato i documenti su entrambi e ho notato subito che gli argomenti sono diversi. È save_model() chiamato solo quando il modello viene salvato dall'amministratore? e il metodo save() viene chiamato ogni volta che il modello viene salvato?

UPDATE

Così ho capito che quando si salva da admin. Vengono chiamati sia 'save' che 'save_model()'. Sembra che "save_model()" venga chiamato per primo. Nella mia specifica applicazione, sto usando i segnali pre_save, e 'save()' sovrascrive. Ora voglio aggiungere modifiche a "save_model()". È l'interazione e l'ordine di tutti questi risparmi e segnali che mi confondono.

risposta

3

Come save() come un metodo di Model mentre save_model() è un metodo di ModelAdmin ... sì.

+1

Ok, lo so. Ma quali sono le differenze fondamentali? perché esistono entrambi? Quando si chiama uno rispetto all'altro? – Jglstewart

+0

e se stai salvando dall'amministratore .. come si chiama prima? save_model() o save()? – Jglstewart

+1

Uno esiste in modo che le regole specifiche dell'amministratore/-only possano essere implementate e l'altra esiste in modo che le regole che influiscono su tutti gli usi di un modello possano essere implementate. –