diff options
Diffstat (limited to 'jinja2')
-rw-r--r-- | jinja2/compiler.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/jinja2/compiler.py b/jinja2/compiler.py index 00b29b8..50e00ab 100644 --- a/jinja2/compiler.py +++ b/jinja2/compiler.py @@ -1551,10 +1551,16 @@ class CodeGenerator(NodeVisitor): @optimizeconst def visit_Getattr(self, node, frame): + if self.environment.is_async: + self.write("await auto_await(") + self.write('environment.getattr(') self.visit(node.node, frame) self.write(', %r)' % node.attr) + if self.environment.is_async: + self.write(")") + @optimizeconst def visit_Getitem(self, node, frame): # slices bypass the environment getitem method. @@ -1564,12 +1570,18 @@ class CodeGenerator(NodeVisitor): self.visit(node.arg, frame) self.write(']') else: + if self.environment.is_async: + self.write("await auto_await(") + self.write('environment.getitem(') self.visit(node.node, frame) self.write(', ') self.visit(node.arg, frame) self.write(')') + if self.environment.is_async: + self.write(")") + def visit_Slice(self, node, frame): if node.start is not None: self.visit(node.start, frame) |