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

TimeField

Поле TimeField в формах Django предназначено для приема и валидации времени. Оно преобразует введенную строку в объект datetime.time и проверяет, что значение соответствует формату времени. В качестве аргументов поле принимает параметры, такие как required, initial, widget, input_formats и другие. По умолчанию поле использует виджет TimeInput для отображения в HTML.

Синтаксис

from django import forms class MyForm(forms.Form): time_field = forms.TimeField(**options)

Пример

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

from django import forms class EventForm(forms.Form): event_name = forms.CharField(max_length=100) start_time = forms.TimeField( label="Start time", help_text="Enter time in HH:MM format" ) end_time = forms.TimeField( label="End time", required=False, help_text="Optional end time" )

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

"Form created successfully"

Пример

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

from django.shortcuts import render from django.http import HttpResponse from .forms import EventForm from datetime import time def create_event(request): if request.method == 'POST': form = EventForm(request.POST) if form.is_valid(): start_time = form.cleaned_data['start_time'] end_time = form.cleaned_data['end_time'] event_name = form.cleaned_data['event_name'] # Check if start_time is before end_time if end_time and start_time > end_time: form.add_error('end_time', 'End time must be after start time') return render(request, 'event_form.html', {'form': form}) # Save event data return HttpResponse(f"Event '{event_name}' saved with start time {start_time}") else: form = EventForm() return render(request, 'event_form.html', {'form': form})

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

"Event 'Meeting' saved with start time 14:30:00"

Пример

Давайте укажем формат ввода времени с помощью параметра input_formats:

from django import forms class BookingForm(forms.Form): booking_time = forms.TimeField( label="Booking time", input_formats=['%H:%M', '%I:%M %p'], help_text="Enter time in 24h (14:30) or 12h (02:30 PM) format" )

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

form = BookingForm({'booking_time': '02:30 PM'}) form.is_valid() # Returns True form.cleaned_data['booking_time'] # datetime.time(14, 30)

Пример

Давайте используем поле TimeField в модели с помощью ModelForm:

from django.db import models from django import forms class Schedule(models.Model): title = models.CharField(max_length=100) start_time = models.TimeField() end_time = models.TimeField(null=True, blank=True) class ScheduleForm(forms.ModelForm): class Meta: model = Schedule fields = ['title', 'start_time', 'end_time'] help_texts = { 'start_time': 'Enter time in HH:MM format', }

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

from myapp.forms import ScheduleForm form_data = { 'title': 'Daily standup', 'start_time': '09:30', 'end_time': '10:00' } form = ScheduleForm(form_data) res = form.save() print(f"Schedule '{res.title}' created with start time {res.start_time}")

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

"Schedule 'Daily standup' created with start time 09:30:00"

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

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