items have a higher priority than attributes now. That's compatible with Jinja1 and Django
--HG--
branch : trunk
diff --git a/jinja2/environment.py b/jinja2/environment.py
index dc8bc25..acb5c02 100644
--- a/jinja2/environment.py
+++ b/jinja2/environment.py
@@ -288,19 +288,19 @@
def subscribe(self, obj, argument):
"""Get an item or attribute of an object."""
- if isinstance(argument, basestring):
- try:
- attr = str(argument)
- except:
- pass
- else:
- try:
- return getattr(obj, attr)
- except AttributeError:
- pass
try:
return obj[argument]
except (TypeError, LookupError):
+ if isinstance(argument, basestring):
+ try:
+ attr = str(argument)
+ except:
+ pass
+ else:
+ try:
+ return getattr(obj, attr)
+ except AttributeError:
+ pass
return self.undefined(obj=obj, name=argument)
def parse(self, source, name=None, filename=None):