Поле EmailField
Поле EmailField применяется в формах Django для проверки корректности email-адресов. Оно использует встроенный валидатор EmailValidator, который проверяет, что введенное значение соответствует формату email-адреса. Поле может принимать аргументы max_length для ограничения длины, min_length для минимальной длины, а также стандартные аргументы формы, такие как required, label, help_text и другие.
Синтаксис
from django import forms
class MyForm(forms.Form):
email = forms.EmailField(**options)
Пример
Давайте создадим простую форму для ввода email-адреса:
from django import forms
class ContactForm(forms.Form):
email = forms.EmailField(
label='Email',
max_length=100,
required=True,
help_text='Введите ваш email-адрес'
)
Пример
Давайте создадим форму с полем email и обработаем ее в контроллере:
from django import forms
class SubscribeForm(forms.Form):
email = forms.EmailField(
label='Email',
max_length=200,
required=True
)
name = forms.CharField(
label='Name',
max_length=50,
required=True
)
# В контроллере
def subscribe(request):
if request.method == 'POST':
form = SubscribeForm(request.POST)
if form.is_valid():
email = form.cleaned_data['email']
name = form.cleaned_data['name']
# Обработка подписки
else:
form = SubscribeForm()
Пример
Давайте используем поле EmailField в ModelForm для модели пользователя:
from django.db import models
from django import forms
class UserProfile(models.Model):
username = models.CharField(max_length=30)
email = models.EmailField(max_length=100)
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ['username', 'email']
Результат выполнения кода:
"Форма создана с полями username и email"
Пример
Давайте проверим валидацию поля EmailField при вводе некорректного адреса:
from django import forms
class RegisterForm(forms.Form):
email = forms.EmailField(
label='Email',
max_length=100,
required=True
)
# Создаем форму с некорректным email
form = RegisterForm({
'email': 'invalid-email'
})
if form.is_valid():
print("Форма валидна")
else:
print("Ошибки формы:", form.errors)
Результат выполнения кода:
"Ошибки формы: {'email': ['Enter a valid email address.']}"
Пример
Давайте укажем минимальную длину для поля email:
from django import forms
class SignupForm(forms.Form):
email = forms.EmailField(
label='Email',
max_length=200,
min_length=10,
required=True
)
Смотрите также
-
поле
CharField,
которое используется для текстовых полей -
поле
URLField,
которое валидирует URL-адреса -
валидатор
EmailValidator,
который проверяет корректность email-адресов -
метод
is_valid,
который запускает валидацию формы