Django {{ var }}在其模板中将其视为一些变量.我怎样才能逃避{{ var }}或{{或}}使得Django不把它当作变量.
<p>"{{ some text }}"</p> 应该打印完全相同.
Ond*_*ták 128
Django 1.5引入了{% verbatim %}模板标签.它阻止模板解析此标记的内容:
{% verbatim %}
{{ var }}
{% endverbatim %}
Run Code Online (Sandbox Code Playgroud)
将呈现为:
{{ var }}
Run Code Online (Sandbox Code Playgroud)
Nat*_*ate 60
我相信你正在寻找templatetag模板标签.
作为链接到doc的状态,
由于模板系统没有"转义"的概念,因此要显示模板标签中使用的其中一个位,必须使用该
{% templatetag %}标签.
例如:
<p>"{% templatetag openvariable %} some text {% templatetag closevariable %}"</p>
Run Code Online (Sandbox Code Playgroud)
将如此出现:
<p>"{{ some text }}"</p>
Run Code Online (Sandbox Code Playgroud)
Lyc*_*cha 26
编辑:我不是真的推荐这个,因为它不是很干净,但它仍然是一个选项.
我正在寻找一个可以与JQuery模板一起使用的方法,并找到了一种无需标签或过滤器的方法.这是我能得到的最短:
{{ "{{ any text }" }}}
Run Code Online (Sandbox Code Playgroud)
印刷为:
{{ any text }}
Run Code Online (Sandbox Code Playgroud)
为什么会这样?{{}}中的任何文本都会按原样显示,只要它连续没有两个结束括号}}.然后连续有三个括号,django将两个第一个括号解释为变量的结尾,留下一个额外的右括号.
Gui*_*sta 12
您可以尝试使用html字符转义转义,例如:
{= {
} = }
<p>"{{ some text }}"</p>
Run Code Online (Sandbox Code Playgroud)
在浏览器中尝试一下.
小智 7
如果你只需要使用{{}}作为像angularjs这样的模板框架的变量,那么可能更简单:
在你的<app path>/templatetags/ngvar.py,添加
from django import template
register = template.Library()
@register.simple_tag
def ngvar(var_name):
return "{{%s}}" % var_name
Run Code Online (Sandbox Code Playgroud)
在模板中,做
{% load ngvar %}
{% ngvar "variable name" %}
Run Code Online (Sandbox Code Playgroud)
如果ngvar.py是第一个模板标记,请确保将__init__.py文件添加到templatetags目录中
| 归档时间: |
|
| 查看次数: |
28412 次 |
| 最近记录: |