2012-12-20 12 views
6

對於我所有需要覆蓋保存方法的Django需求,我一直在我的模型中使用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

其中一個存在,以便可以實施管理員專用/僅限規則,另一個存在,以便可以實施影響模型所有用途的規則。 –

相關問題