在模板中显示并格式化Django DurationField


问题内容

我使用的是Django 1.8,我将其中一个字段定义为DurationField,但是如果我这样输出,我找不到任何方法可以在模板上正确显示它:

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

是否有任何过滤器或任何其他显示更多类似内容的方式

2hours 30 min

问题答案:

不,我不认为可以使用任何内置过滤器来格式化a timedelta,但是自己编写应该很容易。

这是一个基本示例:

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)