【问题标题】:Django's template variable gets interpreted as HTMLDjango 的模板变量被解释为 HTML
【发布时间】:2013-08-13 01:46:32
【问题描述】:

DEBUG=True 包含HTML 的变量只是打印在模板中并且 插入为HTML。这是正确的行为。

另一方面,当DEBUG=False(只是改变这个)变量的内容被解释为HTML,我不明白为什么。我没有使用safe 过滤器。

我的模板如下:

  <pre id="copy-source-{{ forloop.counter }}">
    <code>{{ code }}</code>
  </pre>

在一种情况下,code 恰好是 HTML 代码,具体来说:

<a href="blabla"><img src="bblabla" /></a>

页面显示图像而不是代码,即使它在预代码中!?

【问题讨论】:

  • 你用的是什么 django 版本?
  • @alecxe: 1.5.1,抱歉没有包括在内。
  • @alecxe:更新了问题。谢谢

标签: html django templates django-templates


【解决方案1】:

试试这个

{% autoescape off %}
    {{var_containing_html}}
{% endautoescape %}

我希望这会有所帮助。 祝你好运。

附:另见docs

【讨论】:

  • 我认为它有效,但事实并非如此。我会用更多细节更新问题。
  • 更新了问题。谢谢
  • 你试过 {% autoescape on %} 吗?然后&amp;lt;&amp;gt;符号将被转义,看起来像&amp;lt;&amp;gt;,不会被浏览器解释为html,所以用户可以看到代码。
  • 是的,但令人惊讶的是它不起作用。我仍然看到图像。相反,如果我关闭DEBUG,我会看到代码!我在这里变得疯狂......
猜你喜欢
  • 1970-01-01
  • 2016-04-22
  • 1970-01-01
  • 2017-06-01
  • 2012-12-11
  • 1970-01-01
  • 2017-10-01
  • 2015-07-08
  • 2014-10-20
相关资源
最近更新 更多