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

How to check initial data when save model in ModelAdmin?

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

当特定字段发生变化时(即staus时),我想做某事。所以我想在保存管理之前知道初始数据,这样我可以在save_model中检查它。

我知道在Model中有__init____save__方法,但我只想在modeladmin中激活代码。

下面是示例代码

1
2
3
4
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)

总结

  • 在保存到admin之后,我可以知道obj的初始数据吗?
  • 只有在管理网站中保存时,有什么方法可以做某事吗?

事先谢谢。


我终于找到了解决办法!

我可以通过form.changed_data知道所有更改的数据,所以当特定字段在form.changed_data中时,我可以做一些事情。

这样地

1
2
3
4
5
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)

我希望它能帮助别人!