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

Поле TimeField

Поле TimeField предназначено для хранения времени в формате часы:минуты:секунды. В базе данных оно преобразуется в тип TIME. Это поле полезно для хранения режима работы, времени начала события или продолжительности в формате времени. При инициализации можно указать дополнительные параметры: auto_now - автоматически устанавливает текущее время при создании записи, auto_now_add - автоматически устанавливает время при первом сохранении. Оба параметра принимают значения True или False.

Синтаксис

from django.db import models class YourModel(models.Model): time_field = models.TimeField(**options)

Пример . Модель с TimeField

Создадим модель для расписания с полем времени начала:

from django.db import models class Schedule(models.Model): name = models.CharField(max_length=100) start_time = models.TimeField() end_time = models.TimeField() created_at = models.TimeField(auto_now_add=True)

Создание записи с указанием времени

Создадим объект модели с указанием конкретного времени:

from myapp.models import Schedule from datetime import time schedule = Schedule( name="Morning session", start_time=time(9, 0, 0), end_time=time(12, 30, 0) ) schedule.save()

Получение записей по времени

Отфильтруем расписания, которые начинаются до 10 часов утра:

from myapp.models import Schedule from datetime import time morning_schedules = Schedule.objects.filter(start_time__lt=time(10, 0, 0)) for schedule in morning_schedules: print(schedule.name)

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

"Morning session" "Early bird"

Сравнение времени

Найдем записи, у которых время окончания между 12 и 18 часами:

from myapp.models import Schedule from datetime import time res = Schedule.objects.filter( end_time__gte=time(12, 0, 0), end_time__lte=time(18, 0, 0) ) for schedule in res: print(schedule.name)

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

"Morning session" "Afternoon workshop"

Получение текущего времени

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

from django.db import models class Event(models.Model): title = models.CharField(max_length=200) event_time = models.TimeField(auto_now_add=True)

При создании объекта поле event_time автоматически заполнится текущим временем сервера:

from myapp.models import Event event = Event(title="Team meeting") event.save() print(event.event_time)

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

"14:30:00"

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

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