diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-09-13 23:30:26 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-09-13 23:30:26 +0000 |
| commit | 1b0e58811841858a6108ea7188625d3bd0d41ace (patch) | |
| tree | 3306670ca89095caca845df750708fff573440d5 /docs | |
| parent | ce249d4366a800ebc033cefb8beb33b9b0dba051 (diff) | |
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
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/templates_python.txt | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/docs/templates_python.txt b/docs/templates_python.txt index 261eaedf74..150aa70fdf 100644 --- a/docs/templates_python.txt +++ b/docs/templates_python.txt @@ -642,7 +642,23 @@ your function. Example:: "Converts a string into all lowercase" 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:: 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:: @register.filter(name='cut') + @stringfilter def cut(value, arg): return value.replace(arg, '') @register.filter + @stringfilter def lower(value): return value.lower() If you leave off the ``name`` argument, as in the second example above, Django 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 ---------------------------- |
