django-ckeditor使用问题

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文件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 摘要 版本:python3.6.4+django2.0.3Demo: https://github.com/han...
    飘逸峰阅读 1,645评论 0 3
  • 切换到创建项目的目录 cd C:\Users\admin\Desktop\DjangoProject创建名为pr...
    在努力中阅读 3,339评论 2 3
  • 作为一个前端程序猿,下面这些站会让你眼前一亮。 amazeui框架组建丰富 http://amazeui.org...
    欧巴冰冰阅读 8,938评论 18 303
  • 人生關鍵詞:健康/工作/學習提升/社交/理財/硬本領(瑜伽) 健康提升: 早起:6:20′ 飲食:五谷粉+核桃+血...
    hello菜菜_d8b4阅读 163评论 0 0
  • 一 佛手活了 带着佛性在人间扦插 不在庙堂之上 不在十里洋场 二 四季的光里她只注重当下的光 众...
    琴歌素简阅读 406评论 2 0