如何在Django模板中转义{{或}}?
Django在模板中把{{ var }}
看作是一个变量。如果你想让{{ var }}
或者{{
和}}
这些符号不被当作变量处理,应该怎么做呢?
<p>"{{ some text }}"</p>
这样写应该能完全一样地显示出来。
10 个回答
28
编辑:我其实不太推荐这样做,因为不太干净,但这仍然是一个选择。
我在寻找一个可以和JQuery模板一起使用的方法,发现了一种不需要标签或过滤器的做法。这是我能做到的最简短的方式:
{{ "{{ any text }" }}}
打印出来是:
{{ any text }}
为什么这样有效? 只要文本在{{}}之间,就会原样显示,只要里面没有连续出现两个闭合大括号}}。如果出现三个大括号,django会把前两个当作变量的结束,留下一个额外的闭合大括号。
156
Django 1.5 版本引入了一个叫做 {% verbatim %}
的模板标签。这个标签的作用是让模板在处理内容时,忽略这个标签里面的内容:
{% verbatim %}
{{ var }}
{% endverbatim %}
将会被渲染成:
{{ var }}
67
我想你是在寻找templatetag
这个模板标签。
正如链接中的文档所说,
因为模板系统没有“转义”的概念,所以要显示模板标签中使用的某些内容,你必须使用
{% templatetag %}
标签。
举个例子:
<p>"{% templatetag openvariable %} some text {% templatetag closevariable %}"</p>
将会显示成这样:
<p>"{{ some text }}"</p>