2016-09-16 16 views
0

在我的Django表單中,我需要執行不同的字段值比較(+一些額外的檢查)。如果滿足所有這些條件,我想提出錯誤並通知用戶他不能執行此操作。現在我做的clean方法和代碼看起來像這樣: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而未返回cleared_data。我怎樣才能做到這一點?

回答

0

事實證明,您可以通過self.data訪問字段的值。所以我最終做了self.data['foo'] = self.instance.foo,現在它正在工作。

相關問題