如何在ModelAdmin中保存模型时检查初始数据?

时间:2018-04-26 04:52:28

标签: python django admin

我在save_model()中使用ModelAdmin方法。

我希望在特定字段更改时(即staus)。 所以我想在保存管理员之前知道初始数据,所以我可以在save_model中查看它。

我知道__init__本身有__save__Model方法,但我只想在ModelAdmin中激活代码。

以下为示例代码

def save_model(self, request, obj, form, change):
    if obj.status != xxx (intial data?) and obj.status == 7:
        # do sth
    super(CustomAdmin, self).save_model(request, obj, form, change)

摘要

  • 我可以在管理员保存后知道来自obj的初始数据吗?
  • 当只保存在管理站点时,有什么办法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方案!

我可以通过form.changed_data了解所有已更改的数据,因此我可以在特定字段位于form.changed_data时执行。

像这样

def save_model(self, request, obj, form, change):
    if 'status' in form.changed_data:
        if obj.status != xxx (intial data?) and obj.status == 7:
        # do sth
    super(CustomAdmin, self).save_model(request, obj, form, change)

我希望它会对某人有所帮助!