在我的 Django 模板中,我想传入一个字符串,如下所示:
trademard = "MyCompany ™"
它将显示为 TM 的正确 HTML 实体
但是传入的时候™就变成了™
如何在不包含 html 块和 {% verbatim %} 的情况下获得所需的结果
谢谢
另一种方法,正如 @karthikr 所说,是在模板级别使用
|safe
过滤器:
{{ trademard|safe }}
显然,使用这些方法中的任何一种都要小心——如果数据来自用户输入的源,则可能会导致 HTML 错误甚至应用程序出现安全漏洞。
官方文档有HTML转义的详细解释,所有Django开发者都应该花时间去理解。
我找到了答案:
from django.utils.safestring import mark_safe
mystring = mark_safe("MyCompany ™")
效果很好!
我知道这是一篇较旧的帖子,但我必须在很多地方搜索才能找到不依赖于
safe
标签的解决方案。也许这可以帮助某人:
{% autoescape off %}
{{trademard}}
{% endautoescape %}
这会禁用自动 html 转义。根据文档,结果与应用安全标签相同,但在处理更大的数据块时可能更有用。