如何防止Django解释包含引号的块?

时间:2011-07-26 21:52:44

标签: django django-templates

我正在使用Django模板的网站上工作,我必须生成包含成对卷曲引号的HTML。有没有办法禁用Django的代码块处理标签?像文字块标签这样的东西会很好,所以:

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

...会在输出中生成{% LITERAL {{ BRACES }}

3 个答案:

答案 0 :(得分:5)

对于记录,现在可以使用模板标记逐字。

答案 1 :(得分:2)

编辑: 目前的词法分析器/解析器系统目前无法使用您的语法。

为什么呢?基本上模板系统有一个Lexer和一个Parser。 Lexer将模板字符串作为输入,并对其进行标记。解析器然后在其构造函数中获取标记列表,并将它们解析为编译模板的一组节点列表。模板标签和过滤器只能访问已构建的解析器 - 您无法访问初始词法分析器字符串。请参阅django/templates/__init__.py

中的评论

然而,有一个解决方案。它不是我的(见下文),但它主要使用服务器端包括{%ssi some_file.html%}来包含一个具有文字文本的额外文件。是的,这是一个丑陋的解决方案;但是如果不对模板系统进行重大改写就足够了。

Easy Way to Escape Django Template Variables

答案 2 :(得分:0)