Fixed #4793 -- Tweaked custom filter documentation a little to possibly reduce some confusion. Thanks, SmileyChris.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6143 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
ce249d4366
commit
1b0e588118
|
@ -642,7 +642,23 @@ your function. Example::
|
||||||
"Converts a string into all lowercase"
|
"Converts a string into all lowercase"
|
||||||
return value.lower()
|
return value.lower()
|
||||||
|
|
||||||
When you've written your filter definition, you need to register it with
|
Template filters which expect strings
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
If you're writing a template filter which only expects a string as the first
|
||||||
|
argument, you should use the included decorator ``stringfilter``. This will
|
||||||
|
convert an object to it's string value before being passed to your function::
|
||||||
|
|
||||||
|
from django.template.defaultfilters import stringfilter
|
||||||
|
|
||||||
|
@stringfilter
|
||||||
|
def lower(value):
|
||||||
|
return value.lower()
|
||||||
|
|
||||||
|
Registering a custom filters
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Once you've written your filter definition, you need to register it with
|
||||||
your ``Library`` instance, to make it available to Django's template language::
|
your ``Library`` instance, to make it available to Django's template language::
|
||||||
|
|
||||||
register.filter('cut', cut)
|
register.filter('cut', cut)
|
||||||
|
@ -658,28 +674,18 @@ If you're using Python 2.4 or above, you can use ``register.filter()`` as a
|
||||||
decorator instead::
|
decorator instead::
|
||||||
|
|
||||||
@register.filter(name='cut')
|
@register.filter(name='cut')
|
||||||
|
@stringfilter
|
||||||
def cut(value, arg):
|
def cut(value, arg):
|
||||||
return value.replace(arg, '')
|
return value.replace(arg, '')
|
||||||
|
|
||||||
@register.filter
|
@register.filter
|
||||||
|
@stringfilter
|
||||||
def lower(value):
|
def lower(value):
|
||||||
return value.lower()
|
return value.lower()
|
||||||
|
|
||||||
If you leave off the ``name`` argument, as in the second example above, Django
|
If you leave off the ``name`` argument, as in the second example above, Django
|
||||||
will use the function's name as the filter name.
|
will use the function's name as the filter name.
|
||||||
|
|
||||||
Template filters which expect strings
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
If you are writing a template filter which only expects a string as the first
|
|
||||||
argument, you should use the included decorator ``stringfilter`` which will convert
|
|
||||||
an object to it's string value before being passed to your function::
|
|
||||||
|
|
||||||
from django.template.defaultfilters import stringfilter
|
|
||||||
|
|
||||||
@stringfilter
|
|
||||||
def lower(value):
|
|
||||||
return value.lower()
|
|
||||||
|
|
||||||
Writing custom template tags
|
Writing custom template tags
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue