我正在尝试重写Django管理对象上的save_model方法,以防止用户更改某个字段。 但是我找不到一种方法在此方法中找出字段是否已更改。
以下是我迄今为止的代码:
问题是obj.parking_location和form.cleaned_data['parking_location']都有新值。(这可能是Django的一个错误吗?看起来obj应该包含预保存的值)。在任何情况下,是否有另一种方法来实现这个目标? (我使用的是Django 1.2版本)
以下是我迄今为止的代码:
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.cleaned_data['parking_location']都有新值。(这可能是Django的一个错误吗?看起来obj应该包含预保存的值)。在任何情况下,是否有另一种方法来实现这个目标? (我使用的是Django 1.2版本)
form.changed_data
是通过ModelAdmin
的save_model
方法实现的方式。谢谢。我给你点赞 :) - nik_m