django中使用Uedtor,输入都没有问题,但是HTML内容想显示出来(一直把HTML源码显示出来),网上搜了一天,最后发现是django模版的问题。特此记录希望能够帮助到有需要的人。
Ueditor 是一款非常优秀的嵌入到网页中的编辑器,使用简单,功能强大,但是在django中使用的时候却出现了问题。输入的时候还好,输出的时候会直接显示html源码而不是拥有格式的文本。
显示如下:
为什么会这样呢?这是因为django的模板系统默认会对输出进行转义,比如把<p>转义成了<p> ,然后再显示出来的时候就如实地显示为<p>。这其实是django设计者的一片好心,不过这里却是画蛇添足了。要解决这个问题只要把默认的转义去掉就好了。
比如原本我们的模板代码是这样的:
{{post.content}}
现在我们把它变成这样:
{% autoescape off %}
{{post.content}}
{% endautoescape %}
或者直接{{ post.content|safe }} 效果相同。
最后显示正常: