文章目录
前提:已经安装
django-ckeditor
pip install django-ckeditor
1、安装pillow库
pip install pillow
2、注册ckeditor_uploader应用
INSTALLED_APPS = [
...
# 注册富文本编辑器 ckeditor
"ckeditor",
"ckeditor_uploader", # 图片上传需注册
]
3、设置媒体资源根目录
使用上传功能,需要设置上传位置。该文件是上传到media
目录,所以也需要设置media
。创建media
文件夹,放在django
项目根目录下。
media
存放用户上传的景点图片等资源,这些资源文件变动频率较高,因此与静态资源区分不同的存储路径。
# ckeditor上传图片配置项,设置媒体资源的保存路径
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
4、设置图片上传路径
正文中添加图片,使用django ckeditor
上传,设置保存在配置属性CKEDITOR_UPLOAD_PATH
设置的文件夹中,该文件夹必须在媒体资源文件夹的目录下。
CKEDITOR_UPLOAD_PATH = "upload"
5、配置上传url
上传功能需要有地址可以请求,需要提供上传的url
。打开全局的urls.py
,添加设置到urlpatterns
中:
path('ckeditor/', include('ckeditor_uploader.urls')), # 此行是新增的
6、配置media的访问
上传的图片是到media
中,不是在static
中。我们还需要设置media
可被访问
from django.conf.urls.static import static # 此行是新增
from django.conf import settings # 此行是新增
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
7、修改models
ckeditor.fields.RichTextField
不支持上传文件的富文本字段ckeditor_uploader.fields.RichTextUploadingField
支持上传文件的富文本字段
from ckeditor_uploader.fields import RichTextUploadingField # 此句是新增
content = RichTextUploadingField(verbose_name='景点正文')
8、刷新后台,查看效果
点击该按钮弹出如下上传文件框:
点击选择文件,上传,确定如下图: