在我的Django表单中,我需要执行不同的字段值比较(+一些额外的检查)。如果满足所有这些条件,我想提出错误并通知用户他无法执行此操作。现在我在clean
方法中执行此操作,代码如下所示:
if self.instance.foo != cleaned_data['foo'] and \
Bar.objects.filter(baz=self.instance.id).count():
cleaned_data['foo'] = self.instance.foo
raise forms.ValidationError("You can't change it")
这工作正常,但我也想拒绝更改并恢复以前的值(更新前)。赋值cleaned_data['foo'] = self.instance.foo
显然不起作用,因为由于引发ValidationError而未返回cleaning_data。我怎样才能做到这一点?
答案 0 :(得分:0)
原来你可以访问字段'价值来自self.data
。所以我最终做了self.data['foo'] = self.instance.foo
并且现在正在工作。