Django,html标签没有解释

时间:2016-02-08 18:51:35

标签: javascript python html django

我正在从django项目的DB中加载一个文本,以便在模板中显示它。

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

这是我的模板:

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

我得到原始文本:<strong>Hello</strong> word而不是

&#13;
&#13;
<strong>Hello</strong> word
&#13;
&#13;
&#13;

我做错了什么?

2 个答案:

答案 0 :(得分:3)

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

{{ entry.body_text|safe }}

django doc about safe filter

答案 1 :(得分:2)

你也可以试试这个:

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

来自autoescape的django文档:

  

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

     

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

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

  

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

请参见此处:safe过滤器。

详细了解django模板标签和过滤器:Django Built-in template tags and filters