Существует билет, который датируется июлем 2006 года и связан с этим:
https://code.djangoproject.com/ticket/2443
Было написано несколько патчей, но тот, который был добавлен в проект:
https://github.com/johnpaulett/django-durationfield
По сравнению со всеми остальными ответами здесь этот проект является зрелым и будет объединен с ядром, за исключением того, что его включение в настоящее время считается "ненормальным".
Лично я только что попробовал кучу решений, и это то, что прекрасно работает.
from django.db import models
from durationfield.db.models.fields.duration import DurationField
class Event(models.Model):
start = models.DateTimeField()
duration = DurationField()
@property
def finish(self):
return self.start + self.duration
Результат:
$ evt = Event.objects.create(start=datetime.datetime.now(), duration='1 week')
$ evt.finish
Out[]: datetime.datetime(2013, 6, 13, 5, 29, 29, 404753)
А в админке:
Изменить событие
Продолжительность: 7 days, 0:00:00