У меня есть форма, которая должна быть проверена только после ее очистки.
Что происходит при запуске form.is_valid()
? Очищается ли форма, а затем очищенная версия формы подтверждена?
Поведение, которое я получаю в данный момент, заключается в том, что если мое поле не проходит проверку перед очисткой, даже если очистка сделает его, is_valid()
возвращает False
.
Я что-то делаю неправильно?
код:
# View
class ContactForm(forms.Form):
message = forms.CharField(widget=forms.Textarea, max_length=5)
def clean_message(self):
message = self.cleaned_data['message']
return message.replace('a', '') # remove all "a"s from message
def contact(request):
if request.method == 'POST':
if form.is_valid():
return HttpResponseRedirect('/contact/on_success/')
else:
return HttpResponseRedirect('/contact/on_failure/')
Я хочу, чтобы form.is_valid()
возвращал True
, если сообщение имеет менее 5 символов НЕ, включая a
!
Можно ли запустить clean_<fieldname>()
после to_python()
, но до run_validators()
? Или я должен делать это по-другому?