РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
8 of 818 menu

Поле EmailField

Поле EmailField предназначено для хранения электронных адресов в моделях Django. Оно представляет собой подкласс CharField с дополнительной валидацией, которая проверяет корректность введенного email-адреса. По умолчанию поле имеет максимальную длину 254 символов, что соответствует стандартам RFC. При создании формы поле автоматически генерирует специальный виджет ввода.

Синтаксис

from django.db import models class MyModel(models.Model): email = models.EmailField(max_length=254, **options)

Параметры

Поле EmailField принимает все стандартные параметры CharField, а также дополнительные опции:

  • max_length - максимальная длина строки (по умолчанию 254);
  • blank - разрешает пустое значение (по умолчанию False);
  • null - разрешает NULL в базе данных (по умолчанию False);
  • unique - делает значение уникальным (по умолчанию False).

Пример

Давайте создадим модель пользователя с полем для электронной почты:

from django.db import models class User(models.Model): username = models.CharField(max_length=100) email = models.EmailField(unique=True) created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.username

Пример

Создадим нового пользователя с электронной почтой:

from myapp.models import User user = User.objects.create( username="john_doe", email="john@example.com" ) print(user.email)

Результат выполнения кода:

"john@example.com"

Пример

Попробуем создать пользователя с некорректным адресом электронной почты:

from myapp.models import User from django.core.exceptions import ValidationError try: user = User.objects.create( username="jane_doe", email="invalid-email" ) except ValidationError as e: print(e.message_dict)

Результат выполнения кода:

{"email": ["Enter a valid email address."]}

Пример

Получим всех пользователей с определенным доменом электронной почты:

from myapp.models import User users = User.objects.filter(email__icontains="@company.com") for user in users: print(f"{user.username}: {user.email}")

Результат выполнения кода:

"alice: alice@company.com" "bob: bob@company.com"

Смотрите также

  • поле CharField,
    которое хранит строки произвольной длины
  • поле TextField,
    которое предназначено для больших текстов
  • поле URLField,
    которое хранит веб-адреса
  • поле SlugField,
    которое используется для создания ЧПУ
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить