Скажем, у меня есть три файла шаблона html, показанные ниже. HTML минимален, чтобы проиллюстрировать эту точку.
Возможно ли каким-то образом вставить блок с именем extra_head_content внутри блока, уже названного extra_head_content. Идея состоит в том, чтобы позволить шаблону третьего уровня предоставить блок с именем extra_head_content. Шаблон над ним принимает этот контент, добавляет его в свой блок с именем extra_head_content и предоставляет этот объединенный блок его родительскому шаблону.
По сути, я ищу блокировку блоков через наследуемые файлы шаблонов.
Точный сценарий, который я пытаюсь решить, заключается в том, что любой шаблон должен иметь возможность добавлять дополнительные файлы javascript или css в элемент head. Однако, самый низкий шаблон не должен заботиться о том, сколько уровней вниз он вложен. Аналогично, дополнительное содержимое заголовка, предоставляемое промежуточным шаблоном, не должно быть перезаписано блочным элементом шаблона терминала.
base.html
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/css/reset.css" />
{% block extra_head_content %}{% endblock %}
</head>
<body>{% block content %}{% endblock %}
</html>
account.html
{% extends "base.html" %}
{% block extra_head_content %}
<link rel="stylesheet" type="text/css" href="/static/css/account.css" />
{% block extra_head_content %}{% endblock %}
{% endblock %}
{% block content %}
<div id="menu">...</div>
{% block account_content %}{% endblock %}
{% endblock %}
account_profile.html
{% extends "account.html" %}
{% block extra_head_content %}
<link rel="stylesheet" type="text/css" href="/static/css/edit_profile.css" />
{% endblock %}
{% block account_content %}
Welcome to your profile
{% endblock %}