From 13d44f54a265e9fc6185e1d5518da8ad568fbaad Mon Sep 17 00:00:00 2001 From: Baptiste Mispelon Date: Tue, 29 Jul 2014 10:54:11 +0200 Subject: [PATCH] [1.7.x] Fixed #23114 -- Clarified documentation of template lookups. Thanks to gmunumel and Tom Dalton for their help on the patch. Backport of 62c74abbb06a081708c2cb5cc459f39beb26acaa from master. --- docs/topics/templates.txt | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/topics/templates.txt b/docs/topics/templates.txt index 92114aebe5..e50e7c96f7 100644 --- a/docs/topics/templates.txt +++ b/docs/topics/templates.txt @@ -95,13 +95,15 @@ Use a dot (``.``) to access attributes of a variable. following lookups, in this order: * Dictionary lookup - * Attribute lookup - * Method call - * List-index lookup + * Attribute or method lookup + * Numeric index lookup - This can cause some unexpected behavior with objects that override - dictionary lookup. For example, consider the following code snippet that - attempts to loop over a ``collections.defaultdict``:: + If the resulting value is callable, it is called with no arguments. The + result of the call becomes the template value. + + This lookup order can cause some unexpected behavior with objects that + override dictionary lookup. For example, consider the following code snippet + that attempts to loop over a ``collections.defaultdict``:: {% for k, v in defaultdict.iteritems %} Do something with k and v here...