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?

questionAnswers(8)

yourAnswerToTheQuestion