我目前正在尝试使用django模板过滤器转义一个变量,如下所示。 我使用jinja2模板引擎,而不是django的主要模板引擎
{{ my_variable|escape|linebreaks }}
带有换行符的字符串的输出如下所示:
^{pr2}$理想情况下
<br />
不应转义,因为它是由“linebreaks”筛选器添加的。没有带有原始字符串的html标记。在
我试过:
{{ my_variable|linebreaks|escape }}
但结果更糟:
<p>Lorem ipsum <br /> dolor sit amet <br />rg srg</p>
<p>gs rgsr rsg serg<br />r srg</p>
有人知道我在应用模板过滤器时是否做错了什么,以及/或是否能够为我指出正确的方向?在
谢谢。在
那么您在jinja2模板中使用django的
linebreaks
过滤器?在这种情况下,我假设django标记字符串安全的方式可能与jinja2不兼容,因此转义django添加的标记(如果autoescape处于活动状态)。在如果你把jinja2的安全过滤器加到最后呢?在
另外,在jinja2文档中有一个定制过滤器的例子,它看起来类似于django的换行符。 http://jinja.pocoo.org/docs/api/#custom-filters
^{pr2}$我真傻,看来我可以用:
强制首先应用“escape”筛选器。 默认情况下,“escape”只适用于所有其他过滤器的末尾,而不管位置如何,因此force_escape是另一个最简单的替代方法。在
相关问题 更多 >
编程相关推荐