在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)
总结
- 在admin中保存后我可以从obj中知道初始数据吗?
- 有什么方法可以只保存在管理站点吗?
提前致谢。
终于找到解决办法了!
我可以通过 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)
希望对大家有所帮助!
我在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)
总结
- 在admin中保存后我可以从obj中知道初始数据吗?
- 有什么方法可以只保存在管理站点吗?
提前致谢。
终于找到解决办法了!
我可以通过 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)
希望对大家有所帮助!