Django comes with a set of template filters to add a “human touch” to your data. It is used to translate numbers and dates into a human readable format.
Personally, I use the template filter naturaltime a lot. It looks good in the user interface and is very easy to
implement. Basically what it is gonna do is translate 09 May 2016 20:54:31 into 29 seconds ago (considering when
now is 20:54:00).
To install Django Humanize, add django.contrib.humanize to your INSTALLED_APPS setting:
INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
]Now in the template, load the template tags:
{% load humanize %}Using it is very straightforward, for example the naturaltime template filter:
{% extends 'base.html' %}
{% load humanize %}
{% block content %}
<ul>
{% for notification in notifications %}
<li>
{{ notification }}
<small>{{ notification.date|naturaltime }}</small>
</li>
{% empty %}
<li>You have no unread notification.</li>
{% endfor %}
</ul>
{% endblock %}Following the available template filters:
| template filter | example |
|---|---|
| apnumber | 1 becomes one |
| intcomma | 4500000 becomes 4,500,000 |
| intword | 1200000 becomes 1.2 million |
| naturalday | 08 May 2016 becomes yesterday |
| naturaltime | 09 May 2016 20:54:31 becomes 29 seconds ago |
| ordinal | 3 becomes 3rd |
Read more on the official Django Documentation.
(Picture:
What You Should Know About The Django User Model
A Complete Beginner's Guide to Django - Part 7
A Complete Beginner's Guide to Django - Part 6
How to Extend Django User Model
How to Setup a SSL Certificate on Nginx for a Django Application
How to Deploy a Django Application to Digital Ocean