Ответ 1
Вы должны искать макросы в Jinja2. Я думаю, что этот вопрос SO связан с вашими запросами.
Я не могу понять, как модифицировать блоки из включенных шаблонов с помощью Jinja2. Вот пример, когда я использую три файла.
base.html:
<html>{% include "content.html" %}</html>
content.html:
<h1>{% block title %}Title{% endblock title%}</h1>
<div>{% block content_body %}Content Body{% endblock content_body%}</div>
story.html
{% extends "base.html" %}
{% block title %}story.title{% endblock title %}
{% block content_body %}story.description{% endblock content_body %}
При рендеринге story.html я получу:
<html>
<h1>Title</h1>
<div>Content Body</div>
</html>
Как сделать рендер с ожидаемыми значениями?
Вы должны искать макросы в Jinja2. Я думаю, что этот вопрос SO связан с вашими запросами.
base.html
не отображается, потому что он не вызывается никаким шаблоном. Что вы можете сделать, это второй уровень расширения:
base.html:
<html>{% block html %}{% endblock %}</html>
content.html:
{% extends "base.html" %}
{% block html %}
<h1>{% block title %}Title{% endblock title%}</h1>
<div>{% block content_body %}Content Body{% endblock content_body%}</div>
{% endblock %}
Тем не менее, это, вероятно, слишком велико, вы, вероятно, обнаружите, что достаточно одного базового шаблона (т.е. объедините base.html
и content.html
в один шаблон).