import re
from django.forms.fields import email_re
from django.forms import CharField, Textarea, ValidationError
from django.utils.translation import ugettext as _
email_separator_re = re.compile(r'[^\w\.\-\+@_]+')
def _is_valid_email(email):
return email_re.match(email)
class EmailsListField(CharField):
widget = Textarea
def clean(self, value):
super(EmailsListField, self).clean(value)
emails = email_separator_re.split(value)
if not emails:
raise ValidationError(_(u'Enter at least one e-mail address.'))
for email in emails:
if not _is_valid_email(email):
raise ValidationError(_('%s is not a valid e-mail address.') % email)
return emails
Comments
For Django 1.2 you need to replace
with
#