Skip to content

Commit 547e6e3

Browse files
committed
Merge branch '2.11.x'
2 parents 4ca745e + 3d5bfc6 commit 547e6e3

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

CHANGES.rst

+9
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,15 @@ Unreleased
1010
- Bump Babel optional dependency to >=2.1.
1111

1212

13+
Version 2.11.1
14+
--------------
15+
16+
Unreleased
17+
18+
- Fix a bug that prevented looking up a key after an attribute
19+
(``{{ data.items[1:] }}``) in an async template. :issue:`1141`
20+
21+
1322
Version 2.11.0
1423
--------------
1524

src/jinja2/compiler.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -1641,14 +1641,14 @@ def visit_Operand(self, node, frame):
16411641
@optimizeconst
16421642
def visit_Getattr(self, node, frame):
16431643
if self.environment.is_async:
1644-
self.write("await auto_await(")
1644+
self.write("(await auto_await(")
16451645

16461646
self.write("environment.getattr(")
16471647
self.visit(node.node, frame)
16481648
self.write(", %r)" % node.attr)
16491649

16501650
if self.environment.is_async:
1651-
self.write(")")
1651+
self.write("))")
16521652

16531653
@optimizeconst
16541654
def visit_Getitem(self, node, frame):
@@ -1660,7 +1660,7 @@ def visit_Getitem(self, node, frame):
16601660
self.write("]")
16611661
else:
16621662
if self.environment.is_async:
1663-
self.write("await auto_await(")
1663+
self.write("(await auto_await(")
16641664

16651665
self.write("environment.getitem(")
16661666
self.visit(node.node, frame)
@@ -1669,7 +1669,7 @@ def visit_Getitem(self, node, frame):
16691669
self.write(")")
16701670

16711671
if self.environment.is_async:
1672-
self.write(")")
1672+
self.write("))")
16731673

16741674
def visit_Slice(self, node, frame):
16751675
if node.start is not None:

tests/test_async.py

+4
Original file line numberDiff line numberDiff line change
@@ -579,3 +579,7 @@ def test_nonrecursive_loop_filter(self, test_env_async):
579579
def test_bare_async(self, test_env_async):
580580
t = test_env_async.from_string('{% extends "header" %}')
581581
assert t.render(foo=42) == "[42|23]"
582+
583+
def test_awaitable_property_slicing(self, test_env_async):
584+
t = test_env_async.from_string("{% for x in a.b[:1] %}{{ x }}{% endfor %}")
585+
assert t.render(a=dict(b=[1, 2, 3])) == "1"

0 commit comments

Comments
 (0)