【问题标题】:Difference between save and save_model()save 和 save_model() 的区别
【发布时间】:2012-12-20 15:27:54
【问题描述】:

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

我在两者上都找到了文档,我立刻注意到论点不同。 save_model() 是否仅在从管理员保存模型时调用?并且在保存模型时调用save() 方法?

更新

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

【问题讨论】:

    标签: django


    【解决方案1】:

    因为save()Model 的方法,而save_model()ModelAdmin 的方法...是的。

    【讨论】:

    • 好的,我知道了。但是根本的区别是什么?为什么两者都存在?与另一个相比,何时调用?
    • 如果你是从管理员那里保存的......首先叫什么? save_model() 还是 save()?
    • 一个存在是为了实现特定于管理员/仅限于管理员的规则,另一个存在是为了实现影响模型所有使用的规则。
    • 所以如果我需要两个功能(save 和 save_model())。和一个 pre_save 信号出去。我如何确定操作顺序?
    • 调用Model.save()时触发信号。 ModelAdmin.save_model() 最终调用模型上的save() 方法。
    猜你喜欢
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    • 2016-02-03
    • 2016-01-08
    • 1970-01-01
    相关资源
    最近更新 更多