Джанго Шаблон переопределение - PullRequest
2 голосов
/ 22 октября 2019

Мне было интересно, что при использовании шаблонов в django я могу расширять другие базовые шаблоны и переопределять некоторые блоки в базовом шаблоне. поэтому мой вопрос: когда я переопределяю, будет ли код в переопределенном блоке по-прежнему обрабатываться, затем переопределяется, или он никогда не будет запущен, и будет отображаться только новый блок?

Пример:

base.html

{% block menu %}
    {% for option in menu %}

       ...Create the menu entries

    {% endfor %}
{% endblock menu %}

extender.html

{% extends base.html %}

{% block menu %}
    ... some other tags
{% endblock menu %}

В этом случае выполняется исходный цикл for в файле base.html, еслиэто переопределяется?

1 Ответ

2 голосов
/ 22 октября 2019

Насколько я знаю, блок будет перезаписан, если вы не хотите сохранить его код в расширенном шаблоне.

Если вы хотите сохранить оригинальный блок, вы можете использовать {{ block.super }}

base.html

[...]
<body>
    {% block header %}
        base header content
    {% endblock %}
    [...]
</body>

extended.html

{% extends "base.html" %}
{% block header %}
    {{ block.super }}
    new content added
{% endblock %}
[...]

G.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...