Почему я не могу вложить тег блока в тег if? - PullRequest
7 голосов
/ 03 июня 2009

У меня есть мастер-файл шаблона с именем base.html, в нем есть следующий код:

{% ifequal environment "dev" %}
    {% block stylesheets %}{% endblock %}
{% endifequal %}

Я наследую это в других шаблонах и делаю следующее:

{% block stylesheets %}
    <link ... >
{% endblock %}

Проблема в том, что таблица стилей, которую я связываю, никогда не применяется, блок таблиц стилей, похоже, игнорируется независимо от того, выполняется ли условие ifequal в базе или нет.

Ответы [ 2 ]

18 голосов
/ 03 июня 2009

Редактировать (14 октября 2010 г.):

Исходное название вопроса больше не соответствует действительности, согласно этому комментарию в билете на Джанго.

Оригинальный ответ:

Я не уверен, почему нет, но вы могли бы просто сделать:

{% block stylesheets %}
    {% ifequal environment "dev" %}
        ... something ....
    {% else %}
        {{ block.super }}
    {% endifequal %}
{% endblock %}

Немного переосмыслив - я думаю, это означает повторение этой логики внутри каждого из ваших шаблонов, что довольно неудовлетворительно, но я все равно оставлю этот ответ здесь. Я быстро просмотрел билеты на Django и не могу найти ничего подходящего.

6 голосов
/ 03 июня 2009

Этот вопрос больше не актуален - по состоянию на r12655 вы можете вкладывать тег блока в условное выражение.

...