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

How to check initial data when save model in ModelAdmin?

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

我想在特定字段更改时执行某项操作(即 staus)。 所以我想在保存管理员之前知道初始数据,以便我可以在 save_model 中检查它。

我知道 Model 本身有 __init____save__ 方法,但我只想在 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)

总结

提前致谢。

终于找到解决办法了!

我可以通过 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)

希望对大家有所帮助!