python mako ckeditor 两坑

坑1:html在django 的mako模版中进行转义:

数据库内html标记转义:

数据库中既有这样的数据:

<p><p><p&

也有这样的数据:

 <li>针对小厂商和大厂商不同灰度策略支持</li>

通过下面的方法可以将&lt;转义为可渲染的html页面内容:

<%! import HTMLParser %>
        % for item in items:

${HTMLParser.HTMLParser().unescape(item.comment)}
        % endfor

坑2:老版本的的django和ckeditor 兼容性不好,导致后台在是使用富文本编辑器类似ckeditor保存数据时会自动添加html标签,用新版本1.11以上的django和ckeditor未发现此问题。

解决方法:

修改ckeditor的config.js文件

/**
 * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see https://ckeditor.com/legal/ckeditor-oss-license
 */

CKEDITOR.editorConfig = function (config) {
    // Define changes to default configuration here. For example:
    config.htmlEncodeOutput = false;
    config.entities = false;

    config.entities = false;
    config.basicEntities = false;
    config.entities_greek = false;
    config.entities_latin = false;
    config.htmlEncodeOutput = false;
    //   config.language = 'fr';
    config.enterMode = CKEDITOR.ENTER_BR;
    //   config.shiftEnterMode = CKEDITOR.ENTER_BR;

    //
    //   config.uiColor = '#AADC6E';
    // config.removePlugins = 'elementspath'; //这个只是不显示body和p标签,并没有去掉自动增加的p标签
    //config.startupMode = 'source'; //启动源码

};

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券