from django.core.validators import validate_email from django.core.exceptions import ValidationError from django.utils.translation import ugettext as _ from django.db import models def multiple_email_validator(value): emails = value.split(',') for email in emails: try: validate_email(email.strip()) except ValidationError as e: raise ValidationError(_(u'Enter a valid e-mail address separated by commas.'), code='invalid') class MultipleEmailField(models.CharField): default_validators = [validators.multiple_email_validator] description = _("Multiple e-mail address") def __init__(self, *args, **kwargs): kwargs['max_length'] = kwargs.get('max_length', 512) super(MultipleEmailField, self).__ini__(*args, **kwargs) def formfield(self, **kwargs): raise NotImplementedError("here you can return a custom forms.MultipleEmailField") class MyModel(models.Model): mymultipleemail = MultipleEmailField()