2012-12-20 7 views
6

私のDjangoは、saveメソッドをオーバーライドする必要があるため、私のモデルではsave()を使用しています。私が少し余分なフレアを必要とするものを探していたときに突然、誰かが私の管理者クラスでsave_model()を上書きすることを提案しました。saveとsave_model()の相違点

私は両方でドキュメントを見つけましたが、私はすぐに引数が異なることに気付きました。 save_model()は、モデルが管理者から保存されたときにのみ呼び出されますか?モデルが保存されるたびにsave()メソッドが呼び出されますか?

UPDATE

だから私は、管理者から保存するときにことを考え出しました。 'save'と 'save_model()'の両方が呼び出されます。 'save_model()'が最初に呼び出されるようです。私の特定のアプリケーションでは、私はpre_save信号と 'save()'オーバーライドを使用しています。今度は、save_model()のオーバーライドを追加したいと思います。これらのすべての相互作用と順序は、私を混乱させるオーバーライドとシグナルです。

答えて

3

save()Modelの方法ですが、save_model()ModelAdmin ...はいの方法です。

+1

これはわかっています。しかし、基本的な違いは何ですか?なぜ両方存在するのでしょうか?他の人と比較して、いつ呼び出されますか? – Jglstewart

+0

あなたが管理者から保存している場合は、まず何が呼ばれますか? save_model()またはsave()? – Jglstewart

+1

管理者固有の/専用のルールを実装できるようにするものと、モデルのすべての用途に影響を与えるルールを実装できるようにするものがあります。 –