Python 在ModelAdmin中保存模型时如何检查初始数据?
我在Python 在ModelAdmin中保存模型时如何检查初始数据?,python,django,admin,Python,Django,Admin,我在ModelAdmin中使用save\u model()方法 当特定字段发生变化时,我想做某事(例如,staus)。 所以我想在保存管理员之前知道初始数据,以便在save\u model中检查它 我知道在模型本身中有\uuuuu init\uuuuuu和\uuuu保存方法,但我只想在ModelAdmin中激活代码 下面是示例代码 def save_model(self, request, obj, form, change): if obj.status != xxx (intial
ModelAdmin
中使用save\u model()
方法
当特定字段发生变化时,我想做某事(例如,staus)。
所以我想在保存管理员之前知道初始数据,以便在save\u model
中检查它
我知道在模型
本身中有\uuuuu init\uuuuuu
和\uuuu保存
方法,但我只想在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\u data
知道所有更改的数据,所以当特定字段位于form.changed\u 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)
我希望它能帮助别人 使用(pre_save)@Gahan感谢您的评论。我担心不可能用信号从管理员处保存对象,对吗?逻辑是在任何条件下创建或更新模型实例,它将调用save方法,如果您定义了它,信号将运行。