Когда перезапись формы чистит метод, как Вы знаете если его неудавшаяся проверка на каком-либо из полей? например, в форме ниже, если я перезаписываю чистый метод, как я знаю, привела ли форма проверку к сбою на каком-либо из полей?
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
Спасибо
Вы можете проверить, не были ли добавлены какие-либо ошибки в error 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
БОНУС! Вы можете проверить наличие ошибок в определенных полях:
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
Если ваши данные не проходят проверку, в вашем экземпляре формы не будет атрибута cleaned_data
Django Doc on Доступ к «чистым» данным
Используйте self.is_valid ()
.