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

Виджет DateInput

Виджет DateInput применяется к полю формы типа DateField и предназначен для отображения поля ввода даты в HTML. Виджет позволяет настроить формат отображения даты с помощью атрибута format, а также добавить HTML-атрибуты через аргумент attrs. По умолчанию виджет использует формат '%Y-%m-%d', который соответствует стандарту HTML5 для полей с типом 'date'.

Виджет принимает два основных параметра: attrs - словарь для передачи дополнительных HTML-атрибутов (например, 'class', 'placeholder'), и format - строка формата даты, используемая для отображения и парсинга значения.

Синтаксис

from django import forms class MyForm(forms.Form): date_field = forms.DateField( widget=forms.DateInput(attrs={...}, format='...') )

Пример

Создадим форму с полем для ввода даты и отобразим её в шаблоне:

from django import forms class EventForm(forms.Form): name = forms.CharField(max_length=100) event_date = forms.DateField( widget=forms.DateInput(attrs={ 'class': 'form-control', 'placeholder': 'YYYY-MM-DD' }) )

Результат рендеринга поля event_date:

<input type="text" name="event_date" class="form-control" placeholder="YYYY-MM-DD" required id="id_event_date">

Пример

Настроим виджет для отображения даты в европейском формате 'dd/mm/yyyy':

from django import forms class OrderForm(forms.Form): order_date = forms.DateField( widget=forms.DateInput( format='%d/%m/%Y', attrs={'class': 'datepicker'} ) )

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

from datetime import date form = OrderForm(initial={'order_date': date(2025, 5, 15)}) print(form.as_p())

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

'<p><label for="id_order_date">Order date:</label> <input type="text" name="order_date" value="15/05/2025" class="datepicker" required id="id_order_date"></p>'

Пример

Валидация данных, полученных от виджета, выполняется автоматически с учётом указанного формата:

from django import forms class ReservationForm(forms.Form): check_in = forms.DateField( widget=forms.DateInput(format='%d.%m.%Y') ) form = ReservationForm(data={'check_in': '25.12.2025'}) if form.is_valid(): print(f"Valid date: {form.cleaned_data['check_in']}") else: print(form.errors)

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

"Valid date: 2025-12-25"

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

  • виджет DateTimeInput,
    который отображает поле для ввода даты и времени
  • виджет TextInput,
    который отображает стандартное текстовое поле ввода
  • поле формы DateField,
    которое используется для обработки данных даты
  • виджет SelectDateWidget,
    который отображает дату через три отдельных выпадающих списка
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить