2012-12-21 26 views
10

我有HTML形式的Django查看后也因为一些约束,更容易为我做validation没有通常Django的表单类的电子邮件。Django的:如何检查,如果事情是没有形式

我使用Django表单唯一原因是被输入的电子邮件字段(一个或多个)。

是否有任何函数来检查,如果事情是email或者我必须使用EmailField检查和验证呢?

回答

22

您可以使用以下

from django.core.validators import validate_email 
from django import forms 

... 
if request.method == "POST": 
    try: 
     validate_email(request.POST.get("email", "")) 
    except forms.ValidationError: 
     ... 

假设你的表单中有一个<input type="text" name="email" />

5

您可以使用从django.core.validators的validate_email()方法:

>>> from django.core import validators 
>>> validators.validate_email('[email protected]') 
>>> validators.validate_email('[email protected]') 
Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "/Users/jasper/Sites/iaid/env/lib/python2.7/site- packages/django/core/validators.py", line 155, in __call__ 
    super(EmailValidator, self).__call__(u'@'.join(parts)) 
    File "/Users/jasper/Sites/iaid/env/lib/python2.7/site-packages/django/core/validators.py", line 44, in __call__ 
    raise ValidationError(self.message, code=self.code) 
ValidationError: [u'Enter a valid e-mail address.'] 
+0

如果有人想自定义错误信息,可以通过编写'validators.validate_email.message ='我的自定义错误信息'来完成 – Jay

相关问题