Jinja: Разрешение переопределения блокировки в тегах include вызывает непредвиденное поведение.

Созданный на 10 июн. 2013  ·  5Комментарии  ·  Источник: pallets/jinja

Самый полезный комментарий

Обеспечить включение с переопределениями блоков при сохранении совместимости с текущей реализацией включения должно быть так просто, просто используя другое имя тега шаблона:

{% include 'file.jinja2' %}

не отменяет включенные блоки, в то время как:

{% include_override 'file.jinja2' %}

делает то же самое.

Очень странно, что такая функциональность не реализована так долго, зная, что Jinja2 очень мощный в большинстве функций, фактически являясь одним из лучших шаблонизаторов, не только для Python.

Особенно, если уже был сделан настоящий патч.

Все 5 Комментарий

Отменено, будет в следующем отладочном выпуске.

Было ли это когда-нибудь исправлено? Я все еще сталкиваюсь с этой ошибкой (такой же, как # 169 и # 84).

Ошибка все еще существует.

Эта ошибка исправлена. Первоначально в # 84 вводились переопределения блоков во включаемых тегах, которые позже были объединены, но с тех пор он нарушил настройку некоторых шаблонов (рекурсия на дублированный блок), отсюда и возникла эта проблема.

Поскольку поведение шаблона изменять нельзя, @mitsuhiko откатит исправление.

Если вы хотите поддержать переопределение блоков, создайте новую проблему и, возможно, предложите рабочее решение.

Обеспечить включение с переопределениями блоков при сохранении совместимости с текущей реализацией включения должно быть так просто, просто используя другое имя тега шаблона:

{% include 'file.jinja2' %}

не отменяет включенные блоки, в то время как:

{% include_override 'file.jinja2' %}

делает то же самое.

Очень странно, что такая функциональность не реализована так долго, зная, что Jinja2 очень мощный в большинстве функций, фактически являясь одним из лучших шаблонизаторов, не только для Python.

Особенно, если уже был сделан настоящий патч.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги