【问题标题】:Django, html tags not interpretedDjango,html标签未解释
【发布时间】:2016-05-18 13:16:54
【问题描述】:

我正在从 django 项目的数据库中加载文本以在模板中显示它。

在存储在数据库中的文本中,我添加了一些 HTML 标签,但浏览器似乎无法解释这些 html 标签。

这是我的模板:

<div>
  <!-- body_text = "<strong>Hello</strong> word"  -->
  {{ entry.body_text }} 
</div>

我得到了原始文本:&lt;strong&gt;Hello&lt;/strong&gt; word 而不是

&lt;strong&gt;Hello&lt;/strong&gt; word

我做错了什么?

【问题讨论】:

    标签: javascript python html django


    【解决方案1】:

    如果您不希望 HTML 被转义,请使用 safe 过滤器:

    {{ entry.body_text|safe }}
    

    django doc about safe filter.

    【讨论】:

      【解决方案2】:

      你也可以试试这个:

      {% autoescape off %}
          {{ your_html_content }}
      {% endautoescape %}
      

      来自 autoescape 的 django 文档:

      控制当前的自动转义行为。这个标签需要 onoff 作为参数,并确定自动转义是否在块内有效。该块关闭 endautoescape 结束标记。

      当自动转义生效时,所有变量内容都有 HTML 在将结果放入输出之前对其应用转义(但 在应用任何过滤器后)。这相当于手动 将转义过滤器应用于每个变量。

      正如另一个答案中指出的那样,您还可以使用safe 过滤器:

      将字符串标记为在输出之前不需要进一步的 HTML 转义。 当自动转义关闭时,此过滤器无效。

      请看这里:safe 过滤器。

      阅读更多关于 django 模板标签和过滤器的信息:Django Built-in template tags and filters

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-19
        • 2011-12-01
        • 2016-03-23
        相关资源
        最近更新 更多