django template html 转义研究

微信公众平台项目研发中遇到html文本标签被转义的问题,上一遍中《django-ckeditor 使用》原以为是django adminsite中文本框的问题,于是引入了富文本编辑器ckeditor。不过今天继续测试时,仍旧存在被转义的问题。

一、问题重新

1、有问题的html模版

{% extends "safe/base.html" %}
{% block title %}通知{% endblock %}
{% block header %}
<header  data-role="header">
            <h1>{{msg.name}}</h1>
        </header>

     {% endblock %} 

 {% block content %}
        <div>
         {{msg.content}}
         </div>
 {% endblock %}   

 {% block script %}

 {% endblock %}

2、问题截图

django template html 转义研究_第1张图片


二、解决问题

1、查看源码

<div data-role="content">

    <div>
    &lt;p&gt;通知第一天&lt;/p&gt;
    &lt;p&gt;吃饭了美嘿嘿&lt;/p&gt;
    </div>
           
</div>

2、分析

django在渲染html时为了保证文本中的内容不该扰模版中的html标签,因此对{{msg.content}}进行了html转义

三、解决方法

其实很简单,使用autoescape标签就ok了

{% autoescape off %}
   {{msg.content}}
{% endautoescape %}

四、有图有真相,最终效果

django template html 转义研究_第2张图片

你可能感兴趣的:(django template html 转义研究)