Я думаю, что Jinja2 поддерживает только один уровень наследования. Возможно, вы сможете добиться того, что вы пытаетесь сделать, используя включает.
layout.html
:
<html>
<body>
{% block content %}
{% endblock %}
</body>
child.html
:
{% extends "layout.html" %}
{% block content %}
{% with objects = some_objects %}
{% include "table.html" %}
{% endwith %}
{% endblock %}
table.html
:
{% for object in objects %}
{{ object.name }}
{{ object.desc }}
{% endfor %}
Это будет работать, когда вы визуализируете шаблон с некоторым кодом, например:
d = [ {'name':'a', 'desc':'b'},
{'name':'c', 'desc':'d'}
]
return render_template('child.html', some_objects = d)
Кроме того, если вы хотите передать несколько переменных вниз, этот синтаксис действителен для with
tag:
{% with objects = some_objects, title = title %}
Протестировано с Jinja2==2.10.3