防止模板转义 & 到 &

问题描述 投票:0回答:3

在我的 Django 模板中,我想传入一个字符串,如下所示:

trademard = "MyCompany ™"

它将显示为 TM 的正确 HTML 实体

但是传入的时候™就变成了™

如何在不包含 html 块和 {% verbatim %} 的情况下获得所需的结果

谢谢

django django-templates
3个回答
8
投票

另一种方法,正如 @karthikr 所说,是在模板级别使用

|safe
过滤器:

{{ trademard|safe }}

显然,使用这些方法中的任何一种都要小心——如果数据来自用户输入的源,则可能会导致 HTML 错误甚至应用程序出现安全漏洞。

官方文档有HTML转义的详细解释,所有Django开发者都应该花时间去理解。


5
投票

我找到了答案:

from django.utils.safestring import mark_safe
mystring = mark_safe("MyCompany ™")

效果很好!


0
投票

我知道这是一篇较旧的帖子,但我必须在很多地方搜索才能找到不依赖于

safe
标签的解决方案。也许这可以帮助某人:

{% autoescape off %}
{{trademard}}
{% endautoescape %}

这会禁用自动 html 转义。根据文档,结果与应用安全标签相同,但在处理更大的数据块时可能更有用。

© www.soinside.com 2019 - 2024. All rights reserved.