django - ckeditor bug以原始html格式呈现文本/字符串

时间:2014-11-27 21:14:00

标签: django django-apps django-ckeditor

我正在使用django ckeditor。输入其编辑器的任何文本/内容都会在网页上呈现原始html输出。

for ex:这是在网页上呈现ckeditor字段(RichTextField)的输出;

<p><span style="color:rgb(0, 0, 0)">this is a test file &rsquo;s forces durin</span><span style="color:rgb(0, 0, 0)">galla&rsquo;s good test is one that fails Thereafter, never to fail in real environment.&nbsp;</span></p>

我一直在寻找解决方案很长一段时间但却找不到一个解决方案:(有些问题类似,但没有一个能够提供帮助。如果提供的任何更改都会有帮助。需要改变的确切位置。不用说我是新手。

由于

1 个答案:

答案 0 :(得分:2)

您需要在模板中将包含html代码段的相关变量标记为safe

显然,您应该确定该文本来自可信用户且 是安全的,因为使用safe过滤器会禁用Django默认应用的安全功能(自动加载)

如果您的ckeditor是评论表单的一部分,并且您将输入的文本标记为safe,则任何有权访问该表单的人都可以在您的页面中注入Javascipt和其他(可能令人讨厌的)内容。

官方文档中详细解释了整个故事:https://docs.djangoproject.com/en/dev/topics/templates/#automatic-html-escaping