人性化
优质
小牛编辑
137浏览
2023-12-01
一系列Django的模板过滤器,有助于向数据添加“人文关怀”。
把'django.contrib.humanize'添加到INSTALLED_APPS设置来激活这些过滤器。 执行以上步骤之后,在模板中使用{% load humanize %} ,你就可以访问到下面的过滤器了·。
基数词
对于数字1~9,返回拼写出来的数字。否则返回数字本身。这样遵循了出版的格式。
例如:
- 1 会变成one。
- 2 会变成 two。
- 10 会变成 10。
你可以传递整数,或者整数的字符串形式。
整数间的逗号
将整数转化为字符串,每三位之间带一个逗号。
例如:
- 4500 会变成 4,500。
- 45000 会变成 45,000
- 450000 会变成 450,000。
- 4500000 会变成 4,500,000。
如果启动了格式本地化,将会被遵循。例如,在德语('de')中:
- 45000 会变成 '45.000'。
- 450000 会变成 '450.000'。
你可以传递整数,或者整数的字符串形式。
整数词组
将一个大的整数转化为友好的文字表示形式。适用于超过一百万的数字。
例如:
- 1000000 会变成 1.0 million。
- 1200000 会变成 1.2 million。
- 1200000000 会变成 1.2 billion。
支持高达10的100次方 (Googol) 的整数。
如果启动了格式本地化将会被遵循。例如,在德语('de')中:
- 1000000 会变成 '1,0 Million'。
- 1200000 会变成 '1,2 Million'。
- 1200000000 会变成 '1,2 Milliarden'。
你可以传递整数,或者整数的字符串形式。
自然日期
对于当天或者一天之内的日期, 返回“今天”,“明天”或者“昨天”,视情况而定。否则,使用传进来的格式字符串给日期格式化。
参数:日期的格式字符串在date标签中描述。
例如(其中“今天”是2007年2月17日):
- 16 Feb 2007 会变成 yesterday。
- 17 Feb 2007 会变成 today。
- 18 Feb 2007 会变成 tomorrow。
其他日期按照提供的参数格式化,如果没提供参数的话,将会按照DATE_FORMAT 设置。
自然时间
对于日期时间的值,返回一个字符串来表示多少秒、分钟或者小时之前 —— 如果超过一天之前,则回退为使用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。
序数词
将一个整数转化为它的序数词字符串。
例如:
- 1 会变成 1st。
- 2 会变成 2nd。
- 3 会变成 3rd。
你可以传递整数,或者整数的字符串形式。