Fixed #13608 - Noted that template lookups use literal values.

This commit is contained in:
Tim Graham 2012-09-01 09:24:39 -04:00
parent 5faadea439
commit 74c025d028
2 changed files with 9 additions and 1 deletions

View File

@ -125,6 +125,10 @@ dot in a variable name, it tries the following lookups, in this order:
* Attribute lookup. Example: ``foo.bar`` * Attribute lookup. Example: ``foo.bar``
* List-index lookup. Example: ``foo[bar]`` * List-index lookup. Example: ``foo[bar]``
Note that "bar" in a template expression like ``{{ foo.bar }}`` will be
interpreted as a literal string and not using the value of the variable "bar",
if one exists in the template context.
The template system uses the first lookup type that works. It's short-circuit The template system uses the first lookup type that works. It's short-circuit
logic. Here are a few examples:: logic. Here are a few examples::

View File

@ -102,7 +102,7 @@ Use a dot (``.``) to access attributes of a variable.
attempts to loop over a ``collections.defaultdict``:: attempts to loop over a ``collections.defaultdict``::
{% for k, v in defaultdict.iteritems %} {% for k, v in defaultdict.iteritems %}
Do something with k and v here... Do something with k and v here...
{% endfor %} {% endfor %}
Because dictionary lookup happens first, that behavior kicks in and provides Because dictionary lookup happens first, that behavior kicks in and provides
@ -116,6 +116,10 @@ If you use a variable that doesn't exist, the template system will insert
the value of the :setting:`TEMPLATE_STRING_IF_INVALID` setting, which is set the value of the :setting:`TEMPLATE_STRING_IF_INVALID` setting, which is set
to ``''`` (the empty string) by default. to ``''`` (the empty string) by default.
Note that "bar" in a template expression like ``{{ foo.bar }}`` will be
interpreted as a literal string and not using the value of the variable "bar",
if one exists in the template context.
Filters Filters
======= =======