1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | from django import forms
from django.forms.fields import email_re
class MultipleEmailsField(forms.Field):
def clean(self, value):
"""
Check that the field contains one or more comma-separated emails
and normalizes the data to a list of the email strings.
"""
if not value:
raise forms.ValidationError('Enter at least one e-mail address.')
emails = value.split(',')
for email in emails:
if not email_re.match(email):
raise forms.ValidationError('%s is not a valid e-mail address.' % email)
# Always return the cleaned data.
return emails
|
More like this
- Multiple emails form field by virhilo 2 years, 2 months ago
- models.MultipleEmailField by fero 4 months, 1 week ago
- Multiple models display form by lbolognini 4 years, 10 months ago
- Validation for full e-mails (e.g. "Joe Hacker <joe@hacker.com>") by akaihola 5 months ago
- Adding Fields to Registration Form [or Multiple Inheritance of forms] by simonkagwe 7 months, 3 weeks ago
Comments
Usage:
#
Do you store multiple emails in one database column?
#
No, it's required for user input, when multiple emails can be entered into one form field.
#
It seems like there is a better solution in the Django documentation: http://docs.djangoproject.com/en/dev/ref/forms/validation/ (MultiEmailField)
#
spanasik - the solution in the docs is identical but is missing the email_re here
#
Remember that email_re has moved from django.form.fields to django.core.validators
#