我试图覆盖save_model method on a Django admin object以防止用户更改某个字段.然而,我找不到一种方法来确定这个字段在这个方法中是否发生了变化.
到目前为止,我的代码如下:
def save_model(self, request, obj, form, change):
if change:
if obj.parking_location == form.cleaned_data['parking_location']:
super(MyVehiclesAdmin, self).save_model(request, obj, form, change)
else:
messages.error(request,
"The Parking Location field cannot be changed.")
问题是obj.parking_location和form.leaned_data[‘parking_location’]都有新值.(这可能是Django的一个错误吗?看起来Obj确实应该包含保存前的值).无论如何,有没有其他方法可以做到这一点呢?
(我在Django 1.2上)