【发布时间】:2011-06-22 07:07:15
【问题描述】:
我有一个表格,只有在清理后才需要验证。
当你运行 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/')
如果消息少于 5 个字符不,包括a,我希望form.is_valid() 返回True!
是否可以在to_python() 之后但在run_validators() 之前运行clean_<fieldname>()?还是我应该以其他方式这样做?
【问题讨论】:
标签: django validation django-forms