Django already offers django.contrib.humanize but that implementation is lacking some features, like humanization of durations.
That lib comes to the rescue allowing you to use template filters backed on the standalone humanize lib.
Add django_humanize
to your INSTALLED_APPS setting.
{% load humanizelib %}
It lasted {{ duration|naturaldelta }}.
import datetime
from django.shortcuts import render_
def summary(request):
context = {'duration': datetime.timedelta(seconds=1000)}
return render('template.html', context)
Will render as "lasted 16 minutes.".
The following template filters are available :
- naturalday
- naturaltime
- ordinal
- intword
- naturaldelta
- intcomma
- apnumber
- fractional
- naturalsize
- naturaldate
Internationalization is supported and matches Django LANGUAGE_CODE setting. If it does not work, maybe, your language code is not supported by the standalone humanize lib. Think about contributing it.