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

Поле SplitDateTimeField

Поле SplitDateTimeField применяется в формах Django для обработки даты и времени, которые вводятся пользователем в двух отдельных полях ввода. Оно наследуется от MultiValueField и по умолчанию использует виджет SplitDateTimeWidget. Это поле автоматически валидирует введённые значения и объединяет их в единый объект datetime.datetime. Поле принимает два аргумента: input_date_formats и input_time_formats, которые позволяют задать форматы ввода для даты и времени соответственно. По умолчанию используются стандартные форматы Django для даты и времени. Поле также поддерживает все стандартные аргументы для полей форм: required, label, initial, help_text и другие.

Синтаксис

from django import forms class MyForm(forms.Form): event_datetime = forms.SplitDateTimeField( label="Event Date and Time", required=True, initial=datetime.now(), help_text="Enter date and time separately" )

Пример

Давайте создадим форму с полем SplitDateTimeField для ввода даты и времени события:

from django import forms from datetime import datetime class EventForm(forms.Form): name = forms.CharField(max_length=100) event_datetime = forms.SplitDateTimeField( label="Event date and time", initial=datetime(2026, 9, 7, 14, 30), help_text="Enter date and time separately" )

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

"EventForm rendered with separate date and time input fields"

Пример

Давайте обработаем данные, введённые в форму с полем SplitDateTimeField:

from django import forms from datetime import datetime class EventForm(forms.Form): name = forms.CharField(max_length=100) event_datetime = forms.SplitDateTimeField() # Assume POST data with date and time parts post_data = { 'name': 'Conference', 'event_datetime_0': '2026-09-07', 'event_datetime_1': '14:30:00' } form = EventForm(post_data) if form.is_valid(): res = form.cleaned_data['event_datetime'] print(res)

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

"2026-09-07 14:30:00"

Пример

Давайте зададим свои форматы ввода для поля SplitDateTimeField:

from django import forms from datetime import datetime class CustomEventForm(forms.Form): name = forms.CharField(max_length=100) event_datetime = forms.SplitDateTimeField( input_date_formats=['%d.%m.%Y'], input_time_formats=['%H:%M'], label="Event date and time", help_text="Use DD.MM.YYYY for date and HH:MM for time" ) # POST data with custom formats post_data = { 'name': 'Workshop', 'event_datetime_0': '07.09.2026', 'event_datetime_1': '14:30' } form = CustomEventForm(post_data) if form.is_valid(): res = form.cleaned_data['event_datetime'] print(res)

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

"2026-09-07 14:30:00"

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

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