django.contrib.humanize — Django 文档

来自菜鸟教程
Django/docs/3.1.x/ref/contrib/humanize
跳转至:导航、​搜索

django.contrib.humanize

一组 Django 模板过滤器,可用于向数据添加“人性化”。

要激活这些过滤器,请将 'django.contrib.humanize' 添加到您的 :setting:`INSTALLED_APPS` 设置。 完成后,在模板中使用 {% load humanize %},您将可以访问以下过滤器。

apnumber

对于数字 1-9,返回拼写的数字。 否则,返回数字。 这遵循美联社的风格。

例子:

  • 1 变为 one
  • 2 变为 two
  • 10 变为 10

您可以传入整数或整数的字符串表示形式。


intcomma

将整数或浮点数(或两者的字符串表示形式)转换为每三位包含逗号的字符串。

例子:

  • 4500 变为 4,500
  • 4500.2 变为 4,500.2
  • 45000 变为 45,000
  • 450000 变为 450,000
  • 4500000 变为 4,500,000

格式本地化如果启用,将被尊重,例如 使用 'de' 语言:

  • 45000 变为 '45.000'
  • 450000 变为 '450.000'


intword

将大整数(或整数的字符串表示)转换为友好的文本表示。 将 1.0 翻译为单数短语,将所有其他数值翻译为复数,这对于某些语言可能不正确。 最适合超过 100 万的数字。

例子:

  • 1000000 变为 1.0 million
  • 1200000 变为 1.2 million
  • 1200000000 变为 1.2 billion
  • -1200000000 变为 -1.2 billion

支持高达 10^100 (Googol) 的值。

格式本地化如果启用,将被尊重,例如 使用 'de' 语言:

  • 1000000 变为 '1,0 Million'
  • 1200000 变为 '1,2 Millionen'
  • 1200000000 变为 '1,2 Milliarden'
  • -1200000000 变为 '-1,2 Milliarden'

3.0 版更改: 所有数值现在都被翻译为复数,除了 1.0 被翻译为单数短语。 对于某些语言,这可能不正确。


3.1 版更改: 添加了对负整数的支持。


naturalday

对于当天或一天内的日期,根据需要返回“今天”、“明天”或“昨天”。 否则,使用传入的格式字符串格式化日期。

Argument: 日期格式字符串,如 :tfilter:`date` 标签中所述。

示例(当“今天”是 2007 年 2 月 17 日时):

  • 16 Feb 2007 变为 yesterday
  • 17 Feb 2007 变为 today
  • 18 Feb 2007 变为 tomorrow
  • 任何其他日期都根据给定的参数或 :setting:`DATE_FORMAT` 设置(如果没有给出参数)进行格式化。


naturaltime

对于日期时间值,返回一个字符串,表示它之前的秒数、分钟数或小时数 - 如果值超过一天,则回退到 :tfilter:`timesince` 格式。 如果日期时间值在未来,返回值将自动使用适当的短语。

示例(当“现在”是 2007 年 2 月 17 日 16:30:00 时):

  • 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


ordinal

将整数转换为其序数作为字符串。

例子:

  • 1 变为 1st
  • 2 变为 2nd
  • 3 变为 3rd

您可以传入整数或整数的字符串表示形式。