Как я могу запретить Django интерпретировать блок, содержащий фигурные кавычки? - PullRequest
3 голосов
/ 27 июля 2011

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

{% literal %}
 {% LITERAL {{ BRACES }}
{% endliteral %}

... будет выдавать {% LITERAL {{ BRACES }} в вывод.

Ответы [ 3 ]

5 голосов
/ 03 декабря 2013

Для записи, это возможно теперь с дословным тегом шаблона.

2 голосов
/ 27 июля 2011

РЕДАКТИРОВАТЬ: Ваш синтаксис в настоящее время невозможен с текущей системой лексера / парсера.

Почему?В основном система шаблонов имеет Lexer и Parser.Lexer принимает строку шаблона в качестве входных данных и маркирует ее.Затем синтаксический анализатор берет список токенов в своем конструкторе и разбирает их в список связок узлов для скомпилированного шаблона.Теги и фильтры шаблона имеют доступ только к уже созданному парсеру - вы не можете получить доступ к исходной строке лексера.Смотрите комментарии в django/templates/__init__.py

Однако, есть решение.Это не мое (см. Ниже), но его использование в основном на стороне сервера включает {% ssi some_file.html%} для включения дополнительного файла с буквенным текстом.Да, это уродливое решение;но без существенного переписывания системы шаблонов этого будет достаточно.

Простой способ избежать переменных шаблона Django

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