Наследовать блоки шаблона от родителя родительского в Django - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть 3 файла шаблона с именами **base.html**, **navbar.html** и **dashboard.html**.

base.html является основным родительским файлом, который имеет **{% block content %}**.

Навбар имеет **{% block navtitle %}**.

Теперь я хочу, чтобы в моем файле 'dashboard.html' был блок **navtitle**.

Оба navbar.html и dashboard.html расширяются **base.html**.Я могу получить блок **content** из файла base.html, но не могу получить блок navbar .

Пожалуйста, объясните мне, как я могу сделать то же самое

Примеры файлов ниже

base.html

    {% block content %} {% endblock %}

navbar.html

    {% extends 'base.html' %}
    {% block navtitle %} {% endblock %}

панель инструментов.html

    {% extends 'base.html' %}
    {% block content %} Demo {% endblock %}          # Able to print it
    {% block navtitle %} Demo 2 {% endblock %}       # Not able to print it

Я также пытался расширить файл navbar.html в файле dashboard.html, но все равно не повезло.

1 Ответ

0 голосов
/ 23 сентября 2019

Использование наследования (1/2)

base.html

{% block content %} {% endblock %}
{% block navtitle %} {% endblock %}

dashboard.html

{% extends 'base.html' %}
{% block content %} Demo {% endblock %}
{% block navtitle %} Demo 2 {% endblock %}

ИспользованиеНаследование (2/2)

полезно, когда некоторые шаблоны наследуют только от base.html, а другие наследуют от navbar.html

base.html

{% block content %} {% endblock %}
{% block navtitle %} {% endblock %}

navbar.html

{% extends 'base.html' %}
{% block navtitle %} {% endblock %}

dashboard.html

{% extends 'navbar.html' %}
{% block content %} Demo {% endblock %}
{% block navtitle %} Demo 2 {% endblock %}

Использование include

base.html

{% block content %} {% endblock %}
{% include "path/to/navbar.html" %}

navbar.html

<div>Some html</div>

dashboard.html

{% extends 'base.html' %}
{% block content %} Demo {% endblock %}
{% block navtitle %} Demo 2 {% endblock %}

Оформление документации шаблонов django для , включая и наследование

...