Задать вопрос
@coalesce

Как в Django реализовать множественное наследование шаблонов?

Как (если возможно) реализовать множественное наследование шаблонов в Django?

Например, исходный шаблон
base.html
<body>
  {% block content %}
  {% endblock %}
</body>


От него наследуем
index.html
{% extends 'base.html' %}

{% block content %} 
    # Заполняем сейчас какие-то данные
{% endblock %}

<h1>Заголовок:
{% block for_child %} 
    # для заполнения в будущем при наследовании
{% endblock %}
</h1>


Можно ли теперь наследовать от index?
Хочу примерно следующие:
child.html
{% extends 'index.html'  %}
  {% block for_child %} 
    # Заполняем блок, унаследованный у родителя.
    # Этот кусок не выводится.
  {% endblock %}


В этом случае блок for_child не заполняется (его не было в исходном шаблоне base, блок for_child добавлен при наследовании от base).

Как тогда сделать логику множественного наследования, что-то вроде:
{% extends ['base.html', 'index.html'] %}?
  • Вопрос задан
  • 439 просмотров
Подписаться 1 Простой 4 комментария
Решения вопроса 1
@coalesce Автор вопроса
index.html
{% extends 'base.html' %}

{% block content %} 
    # Заполняем сейчас какие-то данные

    # Блок, который будем заполнять далее при наследовании необходимо помещать внутри блока который заполняется при "первом" наследовании. 
    <h1>Заголовок:
    {% block for_child %} 
        # для заполнения в будущем при наследовании
    {% endblock %}</h1>
{% endblock %}


спасибо Pavel Denisov
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы