django.contrib.humanize

Набор шаблонных фильтров Django, которые помогают отображать данные в читабельном виде.

Чтобы использовать эти фильтры, добавьте 'django.contrib.humanize' в настройку INSTALLED_APPS. Затем добавьте в шаблоне {% load humanize %}. Теперь вам доступны следующие фильтры.

apnumber

Для чисел 1-9 возвращает их тестовое название. Иначе возвращает число. Соответствует стилю Associated Press.

Например:

  • 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 как единственное число, а все остальные числовые значения как множественные числа, что может быть неправильным для некоторых языков. Лучше всего работает для чисел больше 1 миллиона.

Например:

  • 1000000 станет 1.0 million.
  • 1200000 станет 1.2 million.
  • 1200000000 станет 1.2 billion.

Поддерживаются число до 10^100 (Googol).

Используется Формат локализации, если он доступен и включена локализация. Например, для языка 'de':

  • 1000000 станет '1,0 Million'.
  • 1200000 станет '1,2 Millionen'.
  • 1200000000 станет '1,2 Milliarden'.
Changed in Django 3.0:

Все числовые значения теперь переводятся как множественное число, за исключением 1.0, которое переводится как единственное число. Такой подход может быть неправильным для некоторых языков.

naturalday

Для даты равной текущей, или плюс/минус один день, возвращает «today», «tomorrow» или «yesterday» соответственно. Иначе форматирует дату, используя переданный формат.

Аргумент: формат даты, описанный в описании тега date.

Пример (если текущая дата 17 февраля 2007):

  • 16 Feb 2007 станет yesterday.
  • 17 Feb 2007 станет today.
  • 18 Feb 2007 станет tomorrow.
  • Любая другая дата будет отформатирована в соответствии с переданным аргументом, или форматом из настройки DATE_FORMAT, если формат не передан в фильтр через аргумент.

naturaltime

Для значений datetime вернет текстовое представление сколько секунд, минут или часов прошло. Если значение больше одного дня, используется результат фильтра timesince. Работает для дат в будущем.

Пример (если текущая дата и время 17 февраля 2007 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.

Можно передать число или строку, представляющую число.