对于覆盖save方法所需的所有Django需求,我一直在我的模型中使用save()
。突然间,当我查找需要额外耀斑的东西时,有人建议在我的管理类中覆盖save_model()
。
我在两者上都找到了文档,我立即注意到论点不同。
仅在从管理员保存模型时才调用save_model()
吗?并且只要保存模型,就会调用save()
方法?
更新
所以我发现从管理员保存时。 “save”和“save_model()”都被调用。似乎首先调用'save_model()'。在我的特定应用程序中,我使用pre_save信号,并且'save()'覆盖。现在我想添加'save_model()'覆盖。这是所有这些保存覆盖和信号的交互和顺序让我感到困惑。
答案 0 :(得分:4)
由于save()
是Model
的方法,而save_model()
是ModelAdmin
...的方法。