save和save_model()之间的区别

Jgl*_*art 8 django

对于覆盖save方法所需的所有Django需求,我一直save()在我的模型中使用.突然间,当我查找需要一点额外耀斑的东西时,有人建议save_model()在我的管理课程中重写.

我在两者上找到了文档,我立刻注意到论点不同.是save_model()在对模型从管理保存的唯一的叫什么?并且save()只要模型被保存就调用该方法?

UPDATE

所以我发现从管理员保存时."save"和"save_model()"都被调用.似乎首先调用'save_model()'.在我的特定应用程序中,我使用pre_save信号,并且'save()'覆盖.现在我想添加'save_model()'覆盖.这是所有这些保存覆盖和信号的交互和顺序让我感到困惑.

Ign*_*ams 4

Assave()是一种方法,Model而是save_model()一种方法ModelAdmin...是的。

  • 一个的存在是为了可以实现特定于管理/仅限管理员的规则,另一个的存在是为了可以实现影响模型的所有使用的规则。 (3认同)
  • 当调用“Model.save()”时会触发该信号。`ModelAdmin.save_model()` 最终调用模型上的 `save()` 方法。 (3认同)
  • 好吧,我知道了。但根本的区别是什么?为什么两者都存在?与另一个相比,什么时候调用一个? (2认同)