一些Django的‘奇技淫巧’就存在于这些不起眼的地方。django
为了提升模板系统对人类的友好性,Django在django.contrib.humanize
中提供了一系列的模板过滤器,有助于为数据展现添加“人文关怀”。code
须要把django.contrib.humanize
添加到INSTALLED_APPS
设置中来激活这些过滤器。而后在模板中使用{% load humanize %}
标签,就可使用下面的过滤器了。orm
对于数字1~9,返回英文单词,不然返回数字自己。 这遵循了出版图书的格式。字符串
例如:it
能够传递整数,或者整数的字符串形式。io
将整数或浮点数(或二者的字符串表示形式)转换为每隔三位数字包含逗号的字符串。这在财务报表中颇有用。模板
例如:class
若是启动了Format localization
,还将遵循用户本地国家标准。例如,在德语('de')中:方法
将大整数(或整数的字符串表示形式)转换为友好的文本表示形式。适用于超过一百万的数字。im
例如:
支持高达10的100次方 (Googol) 的整数。
若是启动了Format localization
,还将遵循用户本地国家标准。例如,在德语('de')中:
对于当天或者一天以内的日期,返回“today”,“tomorrow”或者“yesterday”的表示形式,视状况而定。不然,使用传进来的格式字符串进行日期格式化。
例如(“今天”是2007年2月17日):
其它的日期,仍是按照传统的方法展现。
对于日期时间的值,返回一个字符串来表示多少秒、分钟或者小时以前。若是超过一天以前,则回退为使用timesince格式。若是是将来的日期时间,返回值会自动使用合适的文字表述。
例如(“如今”是2007年2月17日16时30分0秒):
17 Feb 2007 16:30:00 会变成 now。 17 Feb 2007 16:29:31 会变成 29 seconds ago。 17 Feb 2007 16:29:00 会变成 a minute ago。 17 Feb 2007 16:25:35 会变成 4 minutes ago。 17 Feb 2007 15:30:29 会变成 59 minutes ago。 17 Feb 2007 15:30:01 会变成 59 minutes ago。 17 Feb 2007 15:30:00 会变成 an hour ago。 17 Feb 2007 13:31:29 会变成 2 hours ago。 16 Feb 2007 13:31:29 会变成 1 day, 2 hours ago。 16 Feb 2007 13:30:01 会变成 1 day, 2 hours ago。 16 Feb 2007 13:30:00 会变成 1 day, 3 hours ago。 17 Feb 2007 16:30:30 会变成 30 seconds from now。 17 Feb 2007 16:30:29 会变成 29 seconds from now。 17 Feb 2007 16:31:00 会变成 a minute from now。 17 Feb 2007 16:34:35 会变成 4 minutes from now。 17 Feb 2007 17:30:29 会变成 an hour from now。 17 Feb 2007 18:31:29 会变成 2 hours from now。 18 Feb 2007 16:31:29 会变成 1 day from now。 26 Feb 2007 18:31:29 会变成 1 week, 2 days from now。
将一个整数转化为它的序数词字符串。
例如: