Fixed #1684 -- Added apnumber template filter in django.contrib.humanize. Thanks, ubernostrum

git-svn-id: http://code.djangoproject.com/svn/django/trunk@3077 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2006-06-04 01:03:48 +00:00
parent fb537e177d
commit b8fd9a44e5
2 changed files with 34 additions and 6 deletions

View File

@ -48,3 +48,17 @@ def intword(value):
return '%.1f trillion' % (value / 1000000000000.0)
return value
register.filter(intword)
def apnumber(value):
"""
For numbers 1-9, returns the number spelled out. Otherwise, returns the
number. This follows Associated Press style.
"""
try:
value = int(value)
except ValueError:
return value
if not 0 < value < 10:
return value
return ('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine')[value-1]
register.filter(apnumber)

View File

@ -53,16 +53,17 @@ To activate these filters, add ``'django.contrib.english'`` to your
``INSTALLED_APPS`` setting. Once you've done that, use ``{% load english %}``
in a template, and you'll have access to these filters:
ordinal
-------
apnumber
--------
Converts an integer to its ordinal as a string.
For numbers 1-9, returns the number spelled out. Otherwise, returns the
number. This follows Associated Press style.
Examples:
* ``1`` becomes ``'1st'``.
* ``2`` becomes ``'2nd'``.
* ``3`` becomes ``'3rd'``.
* ``1`` becomes ``'one'``.
* ``2`` becomes ``'two'``.
* ``10`` becomes ``10``.
You can pass in either an integer or a string representation of an integer.
@ -96,6 +97,19 @@ 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.
flatpages
=========