summaryrefslogtreecommitdiff
path: root/docs/howto
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2010-12-19 15:00:50 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2010-12-19 15:00:50 +0000
commit314fabc930a1bb361ca06e9c948bb726ad8df99a (patch)
tree973d32f9ec0f1885ecd72d8fe45132fb4987b897 /docs/howto
parent7adffaeaf6dfa22db0b6b2a29632b9150c7ac732 (diff)
Fixed #14908 -- Added a 'takes_context' argument to simple_tag. Thanks to Julien Phalip for driving the issue and providing the final patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@14987 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'docs/howto')
-rw-r--r--docs/howto/custom-template-tags.txt24
1 files changed, 21 insertions, 3 deletions
diff --git a/docs/howto/custom-template-tags.txt b/docs/howto/custom-template-tags.txt
index 95ce274460..246bb67af0 100644
--- a/docs/howto/custom-template-tags.txt
+++ b/docs/howto/custom-template-tags.txt
@@ -669,9 +669,27 @@ A couple of things to note about the ``simple_tag`` helper function:
* If the argument was a template variable, our function is passed the
current value of the variable, not the variable itself.
-When your template tag does not need access to the current context, writing a
-function to work with the input values and using the ``simple_tag`` helper is
-the easiest way to create a new tag.
+.. versionadded:: 1.3
+
+If your template tag needs to access the current context, you can use the
+``takes_context`` argument when registering your tag::
+
+ # The first argument *must* be called "context" here.
+ def current_time(context, format_string):
+ timezone = context['timezone']
+ return your_get_current_time_method(timezone)
+
+ register.simple_tag(takes_context=True)(current_time)
+
+Or, using decorator syntax::
+
+ @register.simple_tag(takes_context=True)
+ def current_time(context, format_string):
+ timezone = context['timezone']
+ return your_get_current_time_method(timezone)
+
+For more information on how the ``takes_context`` option works, see the section
+on `inclusion tags`_.
.. _howto-custom-template-tags-inclusion-tags: