Для этого я бы предложил добавить пользовательский шаблонный фильтр или новое свойство модели. Например, если вы хотите добавить это в вашу модель:
class results(models.Model):
...
race_start = models.DateTimeField()
race_finish = models.DateTimeField(blank=True, null=True)
@property
def duration(self):
if not (self.race_start and self.race_finish): return None
a,b=self.race_start, self.race_finish
return '%s:%s' % ((b-a).days*24 + (b-a).seconds//3600, (b-a).seconds%3600//60)
Вот пример преобразования его в класс (за пределами django), чтобы показать, как он будет работать с двумя временами гонки, разделенными на 1 день. , 2 часа, 17 минут:
import datetime
class results:
def __init__(self):
self.race_start = datetime.datetime.now()
self.race_finish = datetime.datetime.now() + datetime.timedelta(days=1, hours=2, minutes=17)
@property
def duration(self):
if not (self.race_start and self.race_finish): return None
a,b=self.race_start, self.race_finish
return '%s:%s' % ((b-a).days*24 + (b-a).seconds//3600, (b-a).seconds%3600//60)
>>> r=results()
>>> r.duration
'26:17'
Другими словами, в вашем шаблоне вы можете просто указать Time - {{ results.duration }}
, и он должен показать: "Time - 26:17
".