Если в Django вы хотите сохранить продолжительность или период времени в поле модели, вы можете использовать DurationField. Это поле предназначено для хранения продолжительности в форме объекта timedelta, представляющего разницу между двумя объектами datetime.
Вот несколько методов, которые можно использовать с DurationFieldв моделях Django, а также примеры кода:
-
Сохранение продолжительности:
from django.db import models from datetime import timedelta class MyModel(models.Model): duration = models.DurationField() -
Присвоение продолжительности полю:
my_model = MyModel() my_model.duration = timedelta(days=5, hours=3, minutes=30) my_model.save() -
Получение продолжительности из поля:
my_model = MyModel.objects.get(pk=1) duration = my_model.duration -
Выполнение вычислений с длительностью:
my_model1 = MyModel.objects.get(pk=1) my_model2 = MyModel.objects.get(pk=2) duration_sum = my_model1.duration + my_model2.duration -
Фильтрация моделей по продолжительности:
from django.db.models import DurationField from datetime import timedelta MyModel.objects.filter(duration__gte=timedelta(hours=10)) -
Общая продолжительность:
from django.db.models import Sum total_duration = MyModel.objects.aggregate(total_duration=Sum('duration')) -
Форматирование длительности отображения:
my_model = MyModel.objects.get(pk=1) formatted_duration = str(my_model.duration)