2012-12-20 18 views
6

Dla wszystkich moich potrzeb Django, które przesłonięcie wymaga metody zapisu, używam save() w moich modelach. Nagle, gdy szukałem czegoś, co wymagało trochę dodatkowego błysku, ktoś zasugerował nadpisanie save_model() w mojej klasie administratora.Różnica między save i save_model()

Znalazłem dokumenty na obu stronach i od razu zauważyłem, że argumenty są różne. Czy save_model() jest wywoływane tylko wtedy, gdy model jest zapisany od administratora? a metoda save() jest wywoływana za każdym razem, gdy zapisywany jest model?

UPDATE

Tak już zorientowali się, że przy zapisie od administratora. Zarówno "save" i "save_model()" zostają wywołane. Wygląda na to, że 'save_model()' zostaje wywołany jako pierwszy. W mojej konkretnej aplikacji używam sygnałów pre_save i nadpisań "save()". Teraz chcę dodać nadpisania "save_model()". Jest to interakcja i kolejność tych wszystkich, pomijając przesłonięcia i sygnały, które mnie mylą.

Odpowiedz

3

Jako jest metodą Model, podczas gdy save_model() jest metodą z save_model() jest metodą ModelAdmin ... tak.

+1

Dobra, wiem o tym. Ale jakie są podstawowe różnice? dlaczego oba istnieją? Kiedy jest się nazywanym w porównaniu do drugiego? – Jglstewart

+0

i jeśli oszczędzasz od administratora .. co jest nazywane jako pierwsze? save_model() lub save()? – Jglstewart

+1

Istnieje jedno, aby można było zaimplementować reguły specyficzne dla administratora/-jednego, a drugie istnieje, aby zaimplementować reguły wpływające na wszystkie zastosowania modelu. –

Powiązane problemy