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

Поле DateField

Поле DateField применяется в моделях Django для хранения дат без времени. В базе данных оно преобразуется в столбец с типом DATE. Поле принимает объекты datetime.date, автоматически преобразует строки в нужном формате и поддерживает все стандартные параметры полей, такие как auto_now, auto_now_add, null, blank и default. При использовании в формах оно отображается как виджет календаря, что упрощает ввод дат пользователем.

Синтаксис

field_name = models.DateField(**options)

Пример

Создадим модель для хранения событий с полем даты:

from django.db import models class Event(models.Model): title = models.CharField(max_length=200) event_date = models.DateField() description = models.TextField(blank=True) def __str__(self): return self.title

Пример

Сохраним событие с указанием конкретной даты:

from myapp.models import Event from datetime import date event = Event( title="Conference", event_date=date(2026, 9, 5), description="Annual tech conference" ) event.save() print(event.event_date)

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

"2026-09-05"

Пример

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

from django.db import models class Article(models.Model): title = models.CharField(max_length=100) content = models.TextField() created_date = models.DateField(auto_now_add=True) published_date = models.DateField(null=True, blank=True) def __str__(self): return self.title

При создании статьи поле created_date автоматически заполнится текущей датой:

from myapp.models import Article article = Article(title="New post", content="Content here") article.save() print(article.created_date)

Результат выполнения кода (дата будет текущей):

"2026-09-05"

Пример

Используем параметр auto_now для автоматического обновления даты при изменении записи:

from django.db import models class Profile(models.Model): user_name = models.CharField(max_length=50) updated_at = models.DateField(auto_now=True) def __str__(self): return self.user_name

При сохранении профиля дата будет автоматически обновляться:

from myapp.models import Profile profile = Profile(user_name="john_doe") profile.save() print(profile.updated_at) profile.user_name = "john_smith" profile.save() print(profile.updated_at)

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

"2026-09-05" "2026-09-05"

Пример

Выполним фильтрацию записей по дате с использованием операторов поиска:

from myapp.models import Event from datetime import date # События после определенной даты future_events = Event.objects.filter(event_date__gt=date(2026, 9, 1)) for event in future_events: print(event.title) # События за конкретный год events_2026 = Event.objects.filter(event_date__year=2026) for event in events_2026: print(event.title) # События с диапазоном дат from_date = date(2026, 8, 1) to_date = date(2026, 9, 30) events_in_range = Event.objects.filter( event_date__gte=from_date, event_date__lte=to_date ) for event in events_in_range: print(event.title)

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

"Conference" "Workshop" "Conference" "Workshop" "Conference"

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

  • поле DateTimeField,
    которое хранит дату и время
  • поле TimeField,
    которое хранит только время
  • поле DurationField,
    которое хранит временные интервалы
  • метод dates,
    который возвращает список уникальных дат из QuerySet
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить