我在Django以下形式:Django的表单验证错误
class UserEmailRegistrationForm(forms.Form):
password = forms.PasswordField(max_length=32, label=_('Password'),
validators=[validators.validate_password])
email = forms.EmailField(label=_('Email'),
validators=[validators.validate_email])
first_name = forms.CharField(max_length=35, label=_('First name'),
validators=[validators.validate_name])
last_name = forms.CharField(max_length=35, label=_('Last name'),
validators=[validators.validate_name])
大多数验证是定制的,但validate_email
作为见于django.core.validators
。另外,这里是我的观点的相关部分:
form = UserEmailRegistrationForm(PUT)
# Validate incoming data
if not form.is_valid():
return HttpResponse(form.errors.as_json(),
content_type='application/json', status=422)
所有验证工作正常,但我得到Enter a valid email address.
两次form.errors
当我沿着无效的电子邮件地址传递。这是我得到的回应:
{"email": [{"message": "Enter a valid email address.", "code": "invalid"}, {"message": "Enter a valid email address.", "code": "invalid"}]}
什么可能导致这种情况,我该如何解决它?
定了!但这是一种奇怪的行为。也许这个参数应该被称为“extra_validators”,它会更合理。 – 2014-10-07 14:51:01