From b8fd9a44e5a00ec1a3e857cd20442ec2572335d0 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Sun, 4 Jun 2006 01:03:48 +0000 Subject: [PATCH] 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 --- .../contrib/humanize/templatetags/humanize.py | 14 ++++++++++ docs/add_ons.txt | 26 ++++++++++++++----- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/django/contrib/humanize/templatetags/humanize.py b/django/contrib/humanize/templatetags/humanize.py index d3170f3116..b2d28a0ab4 100644 --- a/django/contrib/humanize/templatetags/humanize.py +++ b/django/contrib/humanize/templatetags/humanize.py @@ -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) diff --git a/docs/add_ons.txt b/docs/add_ons.txt index bcc2f50a7f..9f5dc640da 100644 --- a/docs/add_ons.txt +++ b/docs/add_ons.txt @@ -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 =========