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

DateField

Поле DateField в формах Django предназначено для обработки ввода дат от пользователя. Оно автоматически преобразует строковые значения в объекты Python datetime.date и выполняет валидацию формата даты. Поле принимает следующие основные параметры: input_formats - список допустимых форматов ввода, widget - виджет для отображения в HTML, required - обязательность заполнения, initial - начальное значение, а также стандартные параметры label, help_text и error_messages.

Синтаксис

from django import forms class MyForm(forms.Form): date_field = forms.DateField( label="Дата", required=True, input_formats=['%Y-%m-%d', '%d/%m/%Y'], widget=forms.DateInput(attrs={'type': 'date'}) )

Пример

Создадим форму для ввода даты рождения и проверим её валидацию:

from django import forms from datetime import date class BirthDateForm(forms.Form): birth_date = forms.DateField( label="Дата рождения", help_text="Введите дату в формате ГГГГ-ММ-ДД" ) # Пример обработки данных form_data = {'birth_date': '1990-05-15'} form = BirthDateForm(form_data) if form.is_valid(): birth_date = form.cleaned_data['birth_date'] print(f"Valid date: {birth_date}") else: print("Form is invalid")

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

"Valid date: 1990-05-15"

Пример

Используем поле DateField с несколькими форматами ввода и проверкой ошибок:

from django import forms from datetime import date class EventDateForm(forms.Form): event_date = forms.DateField( label="Дата события", input_formats=['%Y-%m-%d', '%d.%m.%Y', '%m/%d/%Y'], widget=forms.DateInput(attrs={'placeholder': 'ГГГГ-ММ-ДД'}) ) # Валидная дата form = EventDateForm({'event_date': '15.05.2025'}) if form.is_valid(): print(f"Event date: {form.cleaned_data['event_date']}") # Невалидная дата invalid_form = EventDateForm({'event_date': 'invalid'}) if invalid_form.is_valid(): print("Valid") else: print(f"Errors: {invalid_form.errors}")

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

"Event date: 2025-05-15" "Errors: {'event_date': ['Введите правильную дату.']}"

Пример

Использование DateField с начальным значением и виджетом для выбора даты:

from django import forms from datetime import date class AppointmentForm(forms.Form): appointment_date = forms.DateField( label="Дата приёма", initial=date.today(), widget=forms.DateInput(attrs={'type': 'date'}) ) # Создание формы с начальным значением form = AppointmentForm() print(f"Initial value: {form.initial['appointment_date']}") # Обработка POST данных post_data = {'appointment_date': '2026-09-07'} form = AppointmentForm(post_data) if form.is_valid(): print(f"Selected date: {form.cleaned_data['appointment_date']}")

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

"Initial value: 2026-09-07" "Selected date: 2026-09-07"

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

  • класс Form,
    базовый класс для создания форм в Django
  • поле DateTimeField,
    для ввода даты и времени
  • виджет DateInput,
    для отображения поля ввода даты
  • метод is_valid,
    для проверки валидности данных формы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить