在建站的过程中,我给网站后台加了django-ckeditor,以便上传文章。
在所有的步骤都安装好后,上传文章进行测试,发现在前端页面中的文章自动添加了各种标签,就像下面这样直接暴露在页面:
<p>探探引流脚本2</p>
<p><strong>探探引流脚本2</strong></p>
这些标签本来是ckeditor自动添加用来显示效果的,结果变成了文本来显示。
经过各种测试查阅,发现Django 会自动对views.py 传到HTML文件中的标签语法进行转义,令其语义失效,这样就导致ckeditor自动添加的标签失效。
所以应该让Django认为文本是安全的,不进行转义。所以应该对传入的文本添加过滤器,使用safe属性。
注:safe属性指将字符串标记为安全,不需要转义。
解决办法:对文本添加过滤添加safe属性,如下:
{{text|safe}}
在使用Django集成CKEditor后,发现文章中的HTML标签直接显示在前端页面。原因是Django默认对内容进行转义,使得CKEditor的格式化标签失效。解决方法是在模板中对内容使用`|safe`过滤器,标记内容为安全,防止自动转义,从而正确显示HTML格式。
948

被折叠的 条评论
为什么被折叠?



