Fixed #10545 -- Mentioned that template context variables are scoped to the block in which they're assigned. Thanks to yaniv.haber for the report and timo for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@14350 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
321e48f51b
commit
9facaec719
|
@ -790,7 +790,7 @@ difference between this case and the previous ``inclusion_tag`` example.
|
||||||
Setting a variable in the context
|
Setting a variable in the context
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
The above example simply output a value. Generally, it's more flexible if your
|
The above examples simply output a value. Generally, it's more flexible if your
|
||||||
template tags set template variables instead of outputting values. That way,
|
template tags set template variables instead of outputting values. That way,
|
||||||
template authors can reuse the values that your template tags create.
|
template authors can reuse the values that your template tags create.
|
||||||
|
|
||||||
|
@ -816,6 +816,13 @@ Here's how you'd use this new version of the tag:
|
||||||
|
|
||||||
{% current_time "%Y-%M-%d %I:%M %p" %}<p>The time is {{ current_time }}.</p>
|
{% current_time "%Y-%M-%d %I:%M %p" %}<p>The time is {{ current_time }}.</p>
|
||||||
|
|
||||||
|
.. admonition:: Variable scope in context
|
||||||
|
|
||||||
|
Any variable set in the context will only be available in the same ``block``
|
||||||
|
of the template in which it was assigned. This behaviour is intentional;
|
||||||
|
it provides a scope for variables so that they don't conflict with
|
||||||
|
context in other blocks.
|
||||||
|
|
||||||
But, there's a problem with ``CurrentTimeNode2``: The variable name
|
But, there's a problem with ``CurrentTimeNode2``: The variable name
|
||||||
``current_time`` is hard-coded. This means you'll need to make sure your
|
``current_time`` is hard-coded. This means you'll need to make sure your
|
||||||
template doesn't use ``{{ current_time }}`` anywhere else, because the
|
template doesn't use ``{{ current_time }}`` anywhere else, because the
|
||||||
|
|
Loading…
Reference in New Issue