Django post_save zapobiega rekursji bez nadpisywania modelu save ()
Istnieje wiele wpisów przepełnienia stosu dotyczących rekursji za pomocąpost_save
sygnał, na który komentarze i odpowiedzi są w przeważającej mierze: „dlaczego nie zastąpić save ()” lub zapisu, który został wystrzelony tylkocreated == True
.
Cóż, sądzę, że jest dobry przypadek, aby nie używaćsave()
- na przykład dodam aplikację tymczasową, która obsługuje dane dotyczące realizacji zamówień całkowicie oddzielone od naszego modelu zamówienia.
Reszta frameworka jest błogo nieświadoma aplikacji do wypełniania i użycie haków post_save izoluje cały kod związany z realizacją z naszego modelu zamówienia.
Jeśli zrezygnujemy z usługi realizacji, nic o naszym podstawowym kodzie nie musi się zmienić. Usuwamy aplikację realizacyjną i tyle.
Czy są jakieś przyzwoite metody, które zapewnią, że sygnał post_save nie uruchomi dwukrotnie tego samego programu obsługi?