Подтвердить что ты не робот

Вложенные блоки в шаблонах Django

Шаблон master в моем приложении Django выглядит следующим образом:

{% block parent %}
    Some text...
    {% block child %}
        Default content here...
    {% endblock child %}
    ...some more text
{% endblock parent %}

Теперь этот шаблон должен быть перезаписан таким образом, чтобы был изменен блок child:

{% extends "master.html" %}

{% block child %}
    New content here...
{% endblock child%}

Однако рендеринг остается неизменным (печать "содержимого по умолчанию здесь..." ). Я пропустил что-то очевидное или вложенные блоки невозможно? (Или, нарушая принцип DRY, мне нужно переопределить блок parent?)

Изменить: Я работаю с Django 1.1, если это имеет значение.

4b9b3361

Ответ 1

ОК, это ошибка в системе шаблонов Django. Для большинства других случаев, Бен Джеймс прав (см. Его комментарий к моему вопросу выше).

В моем случае блок child находился внутри блока {% ifnotequal a b %}, и это разрушает наследование блоков. Я считаю, что это ошибка, поскольку для таких операций существуют десятки случаев естественного использования.

Соответствующий билет.

Ответ 2

Сделайте это:

{% extends "master.html" %}

{% block parent %}
    {% block child %}
        New content here...
    {% endblock child%}
{% endblock parent %}