Django添加ckeditor富文本编辑器

时间:2022-03-04 02:08:53

源码 https://github.com/django-ckeditor/django-ckeditor
通过pip安装。

pip3 install django-ckeditor
pip3 install Pillow

在settings.py的INSTALLED_APPS里添加ckeditor和ckeditor_uploader两个应用。

INSTALLED_APPS = (
    #
    'ckeditor',
    'ckeditor_uploader'
)

同时需要在settings.py里设置ckeditor的文件上传路径(在此之前需要配置MEDIA_URL和MEDIA_ROOT)。

CKEDITOR_UPLOAD_PATH = "content"

然后在settings.py里进行ckeditor的相关配置。

CKEDITOR_CONFIGS = {
    'default': {
        'toolbar': 'Full',
    },
}

接下来在urls.py里配置ckeditor相关的url。

urlpatterns = [
    #
    url(r'^ckeditor/', include('ckeditor_uploader.urls')),
]

最后修改需要使用富文本编辑器的Django APP的目录下的models.py。其中RichTextField拥有TextField的全部参数,还拥有其他的一些参数。

from ckeditor.fields import RichTextField
#
instructions = RichTextField() # 将需要使用富文本编辑器的字段改为RichTextField

这样就可以在相应Django APP的Admin界面中使用富文本编辑器编辑了。
当然上面配置ckeditor的CKEDITOR_CONFIGS时比较简单粗暴,其实可以看到这就是一个Python的dict,可以同时运用多种ckeditor的配置并命名。

CKEDITOR_CONFIGS = {
    'awesome_ckeditor': {
        'toolbar': 'Basic',
    },
    'default_ckeditor':{
        'toolbar': 'Full',
    },
}

当然这里也只是简单配置了一下toolbar,其他的一些配置可以看源码和文档。
这样在models.py中就可以通过RichTextField的config_name进行选择。

learn = RichTextField(config_name='default_ckeditor')
instructions = RichTextField(config_name='awesome_ckeditor')