2016-09-16 13 views
0

私のDjangoフォームでは、異なるフィールド値の比較(いくつかの追加チェック)を実行する必要があります。これらの条件がすべて満たされている場合は、エラーを発生させて、この操作を実行できないことをユーザーに通知します。細かい作業だDjango形式:クリーンメソッドで定義済みのフィールド値を復元する

 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") 

を、私はまた、変更を拒否し、(更新前)以前の値を復元したいと思います。今、私はclean方法でそれをやっていると、コードは、これらのように見えます。 ValidationErrorが発生したためにcleaned_dataが返されないため、cleaned_data['foo'] = self.instance.fooという割り当ては明らかに機能していません。どうすればこれを達成できますか?

答えて

0

self.dataでフィールドの値にアクセスできることが判明しました。だから、私はself.data['foo'] = self.instance.fooをやってしまいました、そして、それは今働いています。