想要在Django项目中使用CKEditor,需要下载django-ckeditor包。
集成包的官方网址是https://github.com/django-ckeditor/django-ckeditor。
使用文档可以参考这里http://django-ckeditor.readthedocs.io/en/latest/#outside-of-django-admin
命令行安装方法如下(使用 python3.x 的请用 pip3 命令):
pip install django-ckeditor
pip3 install django-ckeditor
django-ckeditor集成包依赖与Python的PIL库,如果原来没有安装Pillow,需要安装一下,以免报错。在国内安装这个包,可能会出现安装超时的错误,如ReadTimeoutError,这是请使用第二行安装方式,将默认时间提高。
pip3 install pillowpip3 --default-timeout=100install pillow
然后修改项目中的settings.py文件,在I��NSTALLED_APPS,添加cheditor和ckeditor_uploader:
# Application definitionINSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',# Add Here'ckeditor','ckeditor_uploader',]
然后命令行运行collectstatic命令,把CKEditor包加入项目的静态文件管理。
python /your_project/manage.py collectstatic
python3 /your_project/manage.py collectstatic
这里需要在settings.py里设置STATIC_ROOT,STATIC_URL,STATIC_DIRS 。这三项的设置取决你希望把自己的静态文件放在什么目录,以什么来命名。下面的这种情况是将静态文件放在你的项目的名为static的文件夹里,目录为/.../your_project/static/
# Static files (CSS, JavaScript, Images)# https://docs.djangoproject.com/en/1.10/howto/static-files/STATIC_ROOT = os.path.join(BASE_DIR,'static/')STATIC_URL ='/static/'STATICFILES_DIRS = (#("css", os.path.join(STATIC_ROOT, 'css')),#("js", os.path.join(STATIC_ROOT, 'js')),("ckeditor", os.path.join(STATIC_ROOT,'ckeditor')),)
如果需要上传图片,需要设置CKEDITOR_UPLOAD_PATH和依赖库。在设置之前,同样需要设置一下你的多媒体(Media)文件存放位置和存放文件夹的名字:MEDIA_ROOT,MEDIA_URL。
# Media files (the photos of albums)MEDIA_URL ='/media/'MEDIA_ROOT = os.path.join(BASE_DIR,'media/')# /media/your_upload_path/year/month/day/your_upload_fileCKEDITOR_UPLOAD_PATH ='your_upload_path/'CKEDITOR_IMAGE_BACKEND ='pillow'
另外,如果希望在网站中预览上传的图片,需要设置一下项目的urls.py,如下:
rom django.conf.urlsimporturl, includefromdjango.contribimportadminfromdjango.confimportsettingsfromdjango.conf.urls.staticimportstaticurlpatterns = [ url(r'^admin/', admin.site.urls), url(r'ckeditor/', include('ckeditor_uploader.urls')),] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
完成以上配置,就可以在Django项目中正常使用CKEditor了。
原文地址:http://realricecake.cc/blog/2017/08/30/django-ckeditor-guide-1/