django.contrib.humanize

A set of Django template filters useful for adding a “human touch” to data.

To activate these filters, add 'django.contrib.humanize' to your INSTALLED_APPS setting. Once you’ve done that, use {% load humanize %} in a template, and you’ll have access to these filters:

apnumber

For numbers 1-9, returns the number spelled out. Otherwise, returns the number. This follows Associated Press style.

Examples:

  • 1 becomes 'one'.
  • 2 becomes 'two'.
  • 10 becomes 10.

You can pass in either an integer or a string representation of an integer.

intcomma

Converts an integer to a string containing commas every three digits.

Examples:

  • 4500 becomes '4,500'.
  • 45000 becomes '45,000'.
  • 450000 becomes '450,000'.
  • 4500000 becomes '4,500,000'.

You can pass in either an integer or a string representation of an integer.

intword

Converts a large integer to a friendly text representation. Works best for numbers over 1 million.

Examples:

  • 1000000 becomes '1.0 million'.
  • 1200000 becomes '1.2 million'.
  • 1200000000 becomes '1.2 billion'.

Values up to 1000000000000000 (one quadrillion) are supported.

You can pass in either an integer or a string representation of an integer.

ordinal

Converts an integer to its ordinal as a string.

Examples:

  • 1 becomes '1st'.
  • 2 becomes '2nd'.
  • 3 becomes '3rd'.

You can pass in either an integer or a string representation of an integer.

naturalday

New in Django 1.0: Please, see the release notes

For dates that are the current day or within one day, return “today”, “tomorrow” or “yesterday”, as appropriate. Otherwise, format the date using the passed in format string.

Argument: Date formatting string as described in the now tag.

Examples (when ‘today’ is 17 Feb 2007):

  • 16 Feb 2007 becomes yesterday.
  • 17 Feb 2007 becomes today.
  • 18 Feb 2007 becomes tomorrow.
  • Any other day is formatted according to given argument or the DATE_FORMAT setting if no argument is given.