Fixed #6351: added more examples to template filters. Thanks, David Tulig and atlithorn.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@7276 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Jacob Kaplan-Moss 2008-03-18 00:14:41 +00:00
parent 4f5f8735e3
commit 8e14a4e6d7
2 changed files with 214 additions and 3 deletions

View File

@ -43,6 +43,7 @@ answer newbie questions, and generally made Django that much better:
alang@bright-green.com alang@bright-green.com
Marty Alchin <gulopine@gamemusic.org> Marty Alchin <gulopine@gamemusic.org>
atlithorn <atlithorn@gmail.com>
Daniel Alves Barbosa de Oliveira Vaz <danielvaz@gmail.com> Daniel Alves Barbosa de Oliveira Vaz <danielvaz@gmail.com>
AgarFu <heaven@croasanaso.sytes.net> AgarFu <heaven@croasanaso.sytes.net>
Dagur Páll Ammendrup <dagurp@gmail.com> Dagur Páll Ammendrup <dagurp@gmail.com>
@ -347,6 +348,7 @@ answer newbie questions, and generally made Django that much better:
tstromberg@google.com tstromberg@google.com
Makoto Tsuyuki <mtsuyuki@gmail.com> Makoto Tsuyuki <mtsuyuki@gmail.com>
tt@gurgle.no tt@gurgle.no
David Tulig <david.tulig@gmail.com>
Amit Upadhyay Amit Upadhyay
Geert Vanderkelen Geert Vanderkelen
I.S. van Oostveen <v.oostveen@idca.nl> I.S. van Oostveen <v.oostveen@idca.nl>

View File

@ -1224,6 +1224,12 @@ add
Adds the arg to the value. Adds the arg to the value.
For example::
{{ value|add:2 }}
If ``value`` is 4, then the output will be 6.
addslashes addslashes
~~~~~~~~~~ ~~~~~~~~~~
@ -1247,38 +1253,90 @@ cut
Removes all values of arg from the given string. Removes all values of arg from the given string.
For example::
{{ value|cut:" "}}
If ``value`` is "String with spaces", the output will be ``Stringwithspaces``.
date date
~~~~ ~~~~
Formats a date according to the given format (same as the `now`_ tag). Formats a date according to the given format (same as the `now`_ tag).
For example::
{{ value|date:"D d M Y" }}
If ``value`` is a datetime object (ie. datetime.datetime.now()), the output
would be formatted like ``Wed 09 Jan 2008``.
default default
~~~~~~~ ~~~~~~~
If value is unavailable, use given default. If value is unavailable, use given default.
For example::
{{ value|default:"nothing" }}
If ``value`` is ``Undefined``, the output would be ``nothing``.
default_if_none default_if_none
~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
If value is ``None``, use given default. If value is ``None``, use given default.
For example::
{{ value|default_if_none:"nothing" }}
If ``value`` is ``None``, the output would be ``nothing``.
dictsort dictsort
~~~~~~~~ ~~~~~~~~
Takes a list of dictionaries, returns that list sorted by the key given in Takes a list of dictionaries, returns that list sorted by the key given in
the argument. the argument.
For example::
{{ value|dictsort:"name" }}
If ``value`` is::
[
{'name': 'zed', 'age': 19}
{'name': 'amy', 'age': 22},
{'name': 'joe', 'age': 31},
]
then the output would be::
[
{'name': 'amy', 'age': 22},
{'name': 'joe', 'age': 31},
{'name': 'zed', 'age': 19}
]
dictsortreversed dictsortreversed
~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
Takes a list of dictionaries, returns that list sorted in reverse order by the Takes a list of dictionaries, returns that list sorted in reverse order by the
key given in the argument. key given in the argument. This works exactly the same as the above filter, but
the returned value will be in reverse order.
divisibleby divisibleby
~~~~~~~~~~~ ~~~~~~~~~~~
Returns true if the value is divisible by the argument. Returns true if the value is divisible by the argument.
For example::
{{ value|divisibleby:3 }}
If ``value`` is ``21``, the output would be ``True``.
escape escape
~~~~~~ ~~~~~~
@ -1319,16 +1377,38 @@ filesizeformat
Format the value like a 'human-readable' file size (i.e. ``'13 KB'``, Format the value like a 'human-readable' file size (i.e. ``'13 KB'``,
``'4.1 MB'``, ``'102 bytes'``, etc). ``'4.1 MB'``, ``'102 bytes'``, etc).
For example::
{{ value|filesizeformat }}
If ``value`` is 123456789, the output would be ``117.7 MB``.
first first
~~~~~ ~~~~~
Returns the first item in a list. Returns the first item in a list.
For example::
{{ value|first }}
If ``value`` is ``['a', 'b', 'c']``, the output would be `a`.
fix_ampersands fix_ampersands
~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
Replaces ampersands with ``&amp;`` entities. Replaces ampersands with ``&amp;`` entities.
For example::
{{ value|fix_ampersands }}
If ``value`` is ``Tom & Jerry``, the output would be ``Tom &amp; Jerry``.
**New in Django development version**: you probably don't need to use this
filter since ampersands will be automatically escaped. See escape_ for more on
how auto-escaping works.
floatformat floatformat
~~~~~~~~~~~ ~~~~~~~~~~~
@ -1388,6 +1468,12 @@ right-most digit, 2 is the second-right-most digit, etc. Returns the original
value for invalid input (if input or argument is not an integer, or if argument value for invalid input (if input or argument is not an integer, or if argument
is less than 1). Otherwise, output is always an integer. is less than 1). Otherwise, output is always an integer.
For example::
{{ value|get_digit:2 }}
If ``value`` is 123456789, the output would be ``8``.
iriencode iriencode
~~~~~~~~~ ~~~~~~~~~
@ -1401,7 +1487,13 @@ It's safe to use this filter on a string that has already gone through the
join join
~~~~ ~~~~
Joins a list with a string, like Python's ``str.join(list)``. Joins a list with a string, like Python's ``str.join(list)``
For example::
{{ value|join:" // " }}
If ``value`` is ``['a', 'b', 'c']``, the output would be ``a // b // c``.
last last
~~~~ ~~~~
@ -1410,16 +1502,34 @@ last
Returns the last item in a list. Returns the last item in a list.
For example::
{{ value|last }}
If ``value`` is ``['a', 'b', 'c', 'd']``, the output would be ``d``.
length length
~~~~~~ ~~~~~~
Returns the length of the value. Useful for lists. Returns the length of the value. Useful for lists.
For example::
{{ value|length }}
If ``value`` is ``['a', 'b', 'c', 'd']``, the output would be ``4``.
length_is length_is
~~~~~~~~~ ~~~~~~~~~
Returns a boolean of whether the value's length is the argument. Returns a boolean of whether the value's length is the argument.
For example::
{{ value|length_is:4 }}
If ``value`` is ``['a', 'b', 'c', 'd']``, the output would be ``True``.
linebreaks linebreaks
~~~~~~~~~~ ~~~~~~~~~~
@ -1427,6 +1537,13 @@ Replaces line breaks in plain text with appropriate HTML; a single
newline becomes an HTML line break (``<br />``) and a new line newline becomes an HTML line break (``<br />``) and a new line
followed by a blank line becomes a paragraph break (``</p>``). followed by a blank line becomes a paragraph break (``</p>``).
For example::
{{ value|linebreaks }}
If ``value`` is ``Joel\nis a slug``, the output would be ``<p>Joe<br>is a
slug</p>``.
linebreaksbr linebreaksbr
~~~~~~~~~~~~ ~~~~~~~~~~~~
@ -1450,12 +1567,25 @@ lower
Converts a string into all lowercase. Converts a string into all lowercase.
For example::
{{ value|lower }}
If ``value`` is ``Joel Is a Slug``, the output would be ``joel is a slug``.
make_list make_list
~~~~~~~~~ ~~~~~~~~~
Returns the value turned into a list. For an integer, it's a list of Returns the value turned into a list. For an integer, it's a list of
digits. For a string, it's a list of characters. digits. For a string, it's a list of characters.
For example::
{{ value|make_list }}
If ``value`` is "Joe", the output would be ``[u'J', u'o', u'e']. If ``value`` is
123, the output would be ``[1, 2, 3]``.
phone2numeric phone2numeric
~~~~~~~~~~~~~ ~~~~~~~~~~~~~
@ -1492,18 +1622,33 @@ Example::
pprint pprint
~~~~~~ ~~~~~~
A wrapper around pprint.pprint -- for debugging, really. A wrapper around `pprint.pprint`__ -- for debugging, really.
__ http://www.python.org/doc/2.5/lib/module-pprint.html
random random
~~~~~~ ~~~~~~
Returns a random item from the list. Returns a random item from the list.
For example::
{{ value|random }}
If ``value`` is ``['a', 'b', 'c', 'd']``, the output could be ``b``.
removetags removetags
~~~~~~~~~~ ~~~~~~~~~~
Removes a space separated list of [X]HTML tags from the output. Removes a space separated list of [X]HTML tags from the output.
For example::
{{ value|removetags:"b span"|safe }}
If ``value`` is ``<b>Joel</b> <button>is</button> a <span>slug</span>`` the
output would be ``Joel <button>is</button> a slug``.
rjust rjust
~~~~~ ~~~~~
@ -1535,6 +1680,12 @@ Converts to lowercase, removes non-word characters (alphanumerics and
underscores) and converts spaces to hyphens. Also strips leading and trailing underscores) and converts spaces to hyphens. Also strips leading and trailing
whitespace. whitespace.
For example::
{{ value|slugify }}
If ``value`` is ``Joel is a slug``, the output would be ``joel-is-a-slug``.
stringformat stringformat
~~~~~~~~~~~~ ~~~~~~~~~~~~
@ -1545,11 +1696,24 @@ the leading "%" is dropped.
See http://docs.python.org/lib/typesseq-strings.html for documentation of See http://docs.python.org/lib/typesseq-strings.html for documentation of
Python string formatting Python string formatting
For example::
{{ value|stringformat:"s" }}
If ``value`` is ``Joel is a slug``, the output would be ``Joel is a slug``.
striptags striptags
~~~~~~~~~ ~~~~~~~~~
Strips all [X]HTML tags. Strips all [X]HTML tags.
For example::
{{ value|striptags }}
If ``value`` is ``<b>Joel</b> <button>is</button> a <span>slug</span>`` the
output would be ``Joel is a slug``.
time time
~~~~ ~~~~
@ -1558,6 +1722,13 @@ The time filter will only accept parameters in the format string that relate
to the time of day, not the date (for obvious reasons). If you need to to the time of day, not the date (for obvious reasons). If you need to
format a date, use the `date`_ filter. format a date, use the `date`_ filter.
For example::
{{ value|time:"H:i" }}
If ``value`` is ``datetime.datetime.now()``, the output would be formatted
like ``01:23``.
timesince timesince
~~~~~~~~~ ~~~~~~~~~
@ -1599,6 +1770,12 @@ Truncates a string after a certain number of words.
**Argument:** Number of words to truncate after **Argument:** Number of words to truncate after
For example::
{{ value|truncatewords:2 }}
If ``value`` is ``Joel is a slug``, the output would be ``Joel is ...``.
truncatewords_html truncatewords_html
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
@ -1644,6 +1821,12 @@ upper
Converts a string into all uppercase. Converts a string into all uppercase.
For example::
{{ value|upper }}
If ``value`` is ``Joel is a slug``, the output would be ``JOEL IS A SLUG``.
urlencode urlencode
~~~~~~~~~ ~~~~~~~~~
@ -1657,6 +1840,14 @@ Converts URLs in plain text into clickable links.
Note that if ``urlize`` is applied to text that already contains HTML markup, Note that if ``urlize`` is applied to text that already contains HTML markup,
things won't work as expected. Apply this filter only to *plain* text. things won't work as expected. Apply this filter only to *plain* text.
For example::
{{ value|urlize }}
If ``value`` is ``Check out www.djangoproject.com``, the output would be
``Check out <a
href="http://www.djangoproject.com">www.djangoproject.com</a>``.
urlizetrunc urlizetrunc
~~~~~~~~~~~ ~~~~~~~~~~~
@ -1667,6 +1858,14 @@ As with urlize_, this filter should only be applied to *plain* text.
**Argument:** Length to truncate URLs to **Argument:** Length to truncate URLs to
For example::
{{ value|urlizetrunc:15 }}
If ``value`` is ``Check out www.djangoproject.com``, the output would be
``Check out <a
href="http://www.djangoproject.com">www.djangopr...</a>``.
wordcount wordcount
~~~~~~~~~ ~~~~~~~~~
@ -1679,6 +1878,16 @@ Wraps words at specified line length.
**Argument:** number of characters at which to wrap the text **Argument:** number of characters at which to wrap the text
For example::
{{ value|wordwrap:5 }}
If ``value`` is ``Joel is a slug``, the output would be::
Joel
is a
slug
yesno yesno
~~~~~ ~~~~~