美文网首页
django-ckeditor使用问题

django-ckeditor使用问题

作者: Python野路子 | 来源:发表于2018-09-16 12:33 被阅读0次
    1. 关于CKEditor的简体中文语言设置:

    后台管理打开显示的是繁体中文:


    image.png

    检查后发现原因在于CKEditor会使用settings.py文件中的语言设置。
    而我们settings.py中设置的LANGUAGE_CODE = 'zh-hans'简体中文,这是因为Django2文件夹中没有zh-cn文件夹,简体中文是zh_Hans文件夹

    image.png
    直接设置LANGUAGE_CODE = ‘zh-cn’会导致异常。但是这样设置又会导致ckeditor找不到名为zh-Hans.js的语言文件,当找不到文件时,CKEditor会找到第一个名称包含zh的js文件去调用。而zh.js中是繁体字。
    image.png
    zh-cn.js为简体字:
    image.png
    解决方案:
    1. 将ckeditor语言文件名称,将zh.js内容替换成了zh-cn.js中的简体内容。
      ckeditor语言文件所在路径:
      image.png
      即安装的虚拟环境下。
      设置Django中
    LANGUAGE_CODE = 'zh-hans'# 改为简体中文,主要针对admin页面
    
    2.富文本编辑内容,前端显示html代码:

    因为我们在富文本里面编辑内容,在数据库中插入的是待html代码的样式


    image.png

    如果直接获取不处理的话,就会显示:


    image.png

    所以我们需要在显示的时候处理下,使其正常显示:


    image.png

    原因分析:
    在文章详情页没有看到预期的效果,而是类似于一堆乱码一样的 HTML 标签,这些标签本应该在浏览器显示它本身的格式,但是 Django 出于安全方面的考虑,任何的 HTML 代码在 Django 的模板中都会被转义(即显示原始的 HTML 代码,而不是经浏览器渲染后的格式)。
    解决:
    方案1:为了解除转义,只需在模板标签使用 safe 过滤器即可,告诉 Django,这段文本是安全的,你什么也不用做。在模板中找到展示博客文章主体的 {{ article.content}}部分,为其加上 safe 过滤器, {{ article.content|safe }}即可,这下看到预期效果了。
    方案2:
    {% autoescape off %}
    {{course.describe}}
    {% endautoescape %}

    采用方案1方便点。

    #######3.代码高亮
    参照:http://www.aaron-zhao.com/post/1/
    重点是引入js和css文件

    相关文章

      网友评论

          本文标题:django-ckeditor使用问题

          本文链接:https://www.haomeiwen.com/subject/pgtxnftx.html