Django 1.11:完全奇怪的HTML-escape问题

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

我正在将代码库移动到Django 1.11,我的一些小部件现在显示HTML,好像它们是HTML转义的:

<h2>Hello from Foo</h2>

我一直在浏览关于autoescapesafe的文档,没有任何乐趣。所以我想我会回到模板的基础知识。这实际上是我的模板文件中唯一的文本:

<h2>Hello from Foo</h2>

然而,浏览器将标记呈现为ascii文本,而不是作为浏览器的格式化命令.enter image description here

怎么会发生这种情况?在此附近没有变量扩展或自动视图,现在没有simple_tag默认为autoescape。但是一些代理正在对此代码应用HTML转义。

我很困惑。

django django-templates
1个回答
0
投票

我有一个听起来几乎和你一样的问题。

有一个模板标签,在迁移到django 1.11之后,开始返回HTML转义的内容。

尝试复制我之前版本的Django上的问题,这是1.8,没有运气。

最后,我将mark_safe中的django.utils.safestring添加到return语句中,它解决了我的问题。还尝试了添加safeescape过滤器和autoescape标签的所有变体,但没有运气。

编辑:刚刚发现这个:https://docs.djangoproject.com/en/1.10/topics/templates/#django.template.backends.django.DjangoTemplates

看起来自Django 1.10引入了autoescape选项,并且True默认为DjangoTemplates。看起来这可能是导致所述问题的原因。

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