Django项目使用ckeditor详解(不使用admin)


Posted in Python onDecember 17, 2019

效果图:

Django项目使用ckeditor详解(不使用admin)

1.安装django-ckeditor

pip install django-ckeditor

如果需要上传图片或者文件,还需要安装pillow

pip install pillow

2.配置模型字段

如果编辑器需要上传图片或者文件,需要引入RichTextUploadingField,否则只需要引入RichTextField

from ckeditor_uploader.fields import RichTextUploadingField

class Activity(models.Model):
  desc = RichTextUploadingField(verbose_name="活动描述")

3.settings中配置

CKEDITOR_CONFIGS = {
  'default': {
    'toolbar': 'full', #工具栏全部功能
    'height': 300, # 高度
    'width': 730, # 宽度
  },
}
CKEDITOR_UPLOAD_PATH = 'ckeditor/' #上传文件的目录
CKEDITOR_IMAGE_BACKEND = 'pillow'  #pillow做为backend

4.form表单配置

这里只需要使用modelForm,不需要配置

from django import forms

from learntime.activity.models import Activity

class ActivityForm(forms.ModelForm):
  class Meta:
    fields = "__all__" #引入全部字段
    model = Activity

5.urls配置

以下是admin中配置的urls,如果在自己的项目中就不能这样写

urlpatterns = [
  ...
  path('ckeditor/', include('ckeditor_uploader.ckeditor_urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

网上其他教程都是在admin中配置ckeditor,如果按照如上代码可能会发现图片上传失败,点进源码可以看到,图片上传的成功条件为:django的用户表is_staff为True,自己的项目中可能并没有这样设定。

urls源码如下:

from __future__ import absolute_import

from django.conf.urls import url
from django.contrib.admin.views.decorators import staff_member_required
from django.views.decorators.cache import never_cache

from . import views

urlpatterns = [
  url(r'^upload/', staff_member_required(views.upload), name='ckeditor_upload'),
  url(r'^browse/', never_cache(staff_member_required(views.browse)), name='ckeditor_browse'),
]

staff_member_required为装饰器,我们可以把它替换为login_required,即必须登录之后才能上传图片。

修改后的代码如下:

xxx.utils.ckeditor_urls.py

from __future__ import absolute_import

from django.conf.urls import url
from django.contrib.auth.decorators import login_required
from django.views.decorators.cache import never_cache

from ckeditor_uploader import views

urlpatterns = [
  url(r'^upload/', login_required(views.upload), name='ckeditor_upload'),
  url(r'^browse/', never_cache(login_required(views.browse)), name='ckeditor_browse'),
]

urls.py

path('ckeditor/', include('xxx.utils.ckeditor_urls')),

按照如上配置就能完美上传图片和文件了。

Django项目使用ckeditor详解(不使用admin)

以上这篇Django项目使用ckeditor详解(不使用admin)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中解析JSON并同时进行自定义编码处理实例
Feb 08 Python
tensorflow 1.0用CNN进行图像分类
Apr 15 Python
selenium+python自动化测试之环境搭建
Jan 23 Python
使用python爬取微博数据打造一颗“心”
Jun 28 Python
Python+pyplot绘制带文本标注的柱状图方法
Jul 08 Python
Python实用库 PrettyTable 学习笔记
Aug 06 Python
在pycharm中显示python画的图方法
Aug 31 Python
详解有关PyCharm安装库失败的问题的解决方法
Feb 02 Python
多个版本的python共存时使用pip的正确做法
Oct 26 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
Jan 27 Python
Python使用tkinter制作在线翻译软件
Feb 22 Python
Python基础之数据结构详解
Apr 28 Python
python主线程与子线程的结束顺序实例解析
Dec 17 #Python
Django通用类视图实现忘记密码重置密码功能示例
Dec 17 #Python
Django集成celery发送异步邮件实例
Dec 17 #Python
python学生信息管理系统实现代码
Dec 17 #Python
pymysql模块的操作实例
Dec 17 #Python
Django异步任务线程池实现原理
Dec 17 #Python
python 求10个数的平均数实例
Dec 16 #Python
You might like
WAR3重制版DOTA 5V5初体验
2020/04/09 DOTA
PHP合并两个数组的两种方式的异同
2012/09/14 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
2014/08/04 PHP
Zend Guard使用指南及问题处理
2015/01/07 PHP
用roll.js实现的图片自动滚动+鼠标触动的特效
2007/03/18 Javascript
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
2007/04/12 Javascript
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
2014/01/02 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
2015/09/15 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
VueJS全面解析
2016/11/10 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
详解在Vue中通过自定义指令获取dom元素
2017/03/04 Javascript
vue axios用法教程详解
2017/07/23 Javascript
node+express+ejs使用模版引擎做的一个示例demo
2017/09/18 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
Python open读写文件实现脚本
2008/09/06 Python
分析Python中解析构建数据知识
2018/01/20 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
python图片二值化提高识别率代码实例
2019/08/24 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
美国知名艺术画网站:Art.com
2017/02/09 全球购物
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
高级人员简历的自我评价分享
2013/11/03 职场文书
2013年研究生毕业感言
2014/02/06 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
党内外群众意见范文
2015/06/02 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
《倍数和因数》教学反思
2016/02/23 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书