Joh*_*ohn 6 django django-forms
当覆盖表单清理方法时,您如何知道它在任何字段上的验证失败?例如,如果我覆盖干净的方法,如何在下面的表格中如何知道表格在任何字段上的验证是否失败?
class PersonForm(forms.Form):
title = Forms.CharField(max_length=100)
first_name = Forms.CharField(max_length=100)
surname = Forms.CharField(max_length=100)
password = Forms.CharField(max_length=100)
def clean(self, value):
cleaned_data = self.cleaned_data
IF THE FORM HAS FAILED VALIDATION:
self.data['password'] = 'abc'
raise forms.ValidationError("You have failed validation!")
ELSE:
return cleaned_data
Run Code Online (Sandbox Code Playgroud)
谢谢
Mar*_*vin 10
您可以检查是否已将任何错误添加到错误dict中:
def clean(self, value):
cleaned_data = self.cleaned_data
if self._errors:
self.data['password'] = 'abc'
raise forms.ValidationError("You have failed validation!")
else:
return cleaned_data
Run Code Online (Sandbox Code Playgroud)
奖金!您可以检查特定字段的错误:
def clean(self, value):
cleaned_data = self.cleaned_data
if self._errors and 'title' in self._errors:
raise forms.ValidationError("You call that a title?!")
else:
return cleaned_data
Run Code Online (Sandbox Code Playgroud)