一些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。
將一個整數轉化爲它的序數詞字符串。
例如: