富文本编辑器
可以不仅仅插入文字,还可以插入图片,视频等
django-admin中添加富文本编辑器的几种方式:
1、使用第三方的一些库,如django-ckeditor
(https://pypi.python.org/pypi/django-ckeditor)
2、在admin中定义富文本编辑器的widget
3、通过定义ModelAdmin的媒体文件
步骤:
1、下载kindeditor
复制到static的js目录下
2、定义ModelAdmin的媒体文件
这个是在admin当中进行配置的
class ArticleAdmin(admin.ModelAdmin):
exclude = ('title','desc','content')
class Media:
js = (
'/static/js/kindeditor-4.1.10/kindeditor-min.js',
'/static/js/kindeditor-4.1.10/lang/zh_CN.js',
'/static/js/kindeditor-4.1.10/config.js',
)3、修改kindeditor的配置文件
也就是在config.js文件中新建一个对象
asp asp.net examples jsp php 这些文件可以删除
在KinderEditor的官方文档照到相应的配置
然后再config.js当中进行配置
KindEditor.ready(function(K){
K.create('textarea[name=content]',{
width:800,
height:200,
});
});
Pillow是python的一个图像处理库,django-ckeditor需要依赖该库。最简单的安装方法,当然是使用pip,假设你装过pip,可以直接运行以下命令安装:
富文本编辑器上传文件:在blog下面新建一个models.py文件,直接找写好的代码
在KendEditor设置上传路径,也就是先前设置富文本编辑器创建的config.js文件
kindeditor图片上传返回数据格式说明:
# {"error": 1, "message": "出错信息"}
# {"error": 0, "url": "图片地址"}
配置url
from blog.upload im @csrf_exempt 这个装饰器的作用是 不再做远程表单提交验证
port upload_imageurl(r'^admin/upload/(?P<dir_name>[^/]+)$', upload_image, name='upload_image'),
upload_image是upload.py里面的方法
dir_name 是和upload_image里面的传入参数相对应的在KendEditor设置上传路径,也就是先前设置富文本编辑器创建的config.js文件
uploadJson: '/admin/upload/kindeditor', 这个路径是先前在url已经定义好的,这里定义了在uplaod文件夹下面的kindeditor文件夹
dir_name = dir_name + '/%d/%d/' %(today.year,today.month)在uploads.py里面已经进行了定义了在kindeditor目录下的路径