Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Display and format Django DurationField in template

Im using Django 1.8, and i have one of my field defined as DurationField, but i dont find any way to correctly display it on my template, if i output it like this:

{{runtime}}
i just get 0:00:00.007980

is there any filter or any other way of displaying something more like

2hours 30 min
like image 973
Dave Plug Avatar asked Oct 13 '15 14:10

Dave Plug


1 Answers

No, I don't think there is any built in filter to format a timedelta, it should be fairly easy to write one yourself though.

Here is a basic example:

from django import template


register = template.Library()


@register.filter
def duration(td):
    total_seconds = int(td.total_seconds())
    hours = total_seconds // 3600
    minutes = (total_seconds % 3600) // 60

    return '{} hours {} min'.format(hours, minutes)

    
like image 186
aumo Avatar answered Sep 16 '22 15:09

aumo