如何在Django 1.5中获得rfc6532的支持 - 在电子邮件地址的地址部分中使用unicode?

时间:2014-01-17 07:03:09

标签: django unicode django-forms django-1.5 django-models

如何在Django下的电子邮件地址的地址部分支持Unicode? Django 1.5完全拒绝这些:

>>> from django import forms
>>> forms.EmailField().clean('pie@obviously.com')
u'pie@obviously.com'
>>> forms.EmailField().clean('◔@obviously.com')
ValidationError: [u'Enter a valid email address.']

https://tools.ietf.org/html/rfc6532处的文档正在指导从电子邮件地址的7位ASCII转换为utf-8。我怎样才能让Django一起玩?

1 个答案:

答案 0 :(得分:1)

您可以定义自己的EmailValidator子类,并可以覆盖user_regex的正则表达式。该正则表达式用于验证电子邮件地址的用户部分。有关代码,请参阅django.core.validators

然后,您可以为EmailField指定验证程序,以确保使用不同的验证程序。