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ą.
Dobra, wiem o tym. Ale jakie są podstawowe różnice? dlaczego oba istnieją? Kiedy jest się nazywanym w porównaniu do drugiego? – Jglstewart
i jeśli oszczędzasz od administratora .. co jest nazywane jako pierwsze? save_model() lub save()? – Jglstewart
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. –