Bob's Blog

Web开发、测试框架、自动化平台、APP开发、机器学习等

返回上页首页

django使用富文本编辑器



django默认是没有富文本编辑器的。如果是需要写文章并且需要各种样式格式的话,django就需要额外的设置。

一是可以用markdown;二是可以用ckeditor。

这里介绍第二种,即ckeditor来达成富文本编辑的目的。

首先安装

pip install django-ckeditor
pip install pillow

接着在settings.py中添加设置,分别设置app、media路径、ckeditor属性

INSTALLED_APPS = [
    ...
    'ckeditor',
    'ckeditor_uploader',
]

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'


# ckeditor
CKEDITOR_UPLOAD_PATH = 'upload/'
CKEDITOR_IMAGE_BACKEND = 'pillow'
CKEDITOR_BROWSE_SHOW_DIRS = True
CKEDITOR_RESTRICT_BY_USER = True

CKEDITOR_CONFIGS = {
    'default': {
        'toolbar': (['div', 'Source', '-', 'Save', 'NewPage', 'Preview', '-', 'Templates'],
                    ['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Print', 'SpellChecker', 'Scayt'],
                    ['Undo', 'Redo', '-', 'Find', 'Replace', '-', 'SelectAll', 'RemoveFormat', '-', 'Maximize', 'ShowBlocks', '-', "CodeSnippet", 'Subscript', 'Superscript'],
                    ['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton',
                     'HiddenField'],
                    ['Bold', 'Italic', 'Underline', 'Strike', '-'],
                    ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', 'Blockquote'],
                    ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'],
                    ['Link', 'Unlink', 'Anchor'],
                    ['Image', 'Flash', 'Table', 'HorizontalRule', 'Smiley', 'SpecialChar', 'PageBreak'],
                    ['Styles', 'Format', 'Font', 'FontSize'],
                    ['TextColor', 'BGColor'],

                    ),
        'extraPlugins': 'codesnippet',
    }
}

同时需要将对应的字段修改一下,比如

from ckeditor_uploader.fields import RichTextUploadingField 

...
   # detail = models.CharField(max_length=10000, verbose_name="详细说明")
    detail = RichTextUploadingField()

此时数据库迁移后再启动就能看到富文本编辑器了

python manage.py makemigrations
python manage.py migrate
python manage.py runserver

但是还需要注意一个地方需要修改,否则能上传图片,但是在选择图片和嵌入图片时会提示错误‘Not Found’而且也看不到图片缩微图。

修改urls.py,添加如下:

from django.conf.urls.static import static
from django.conf import settings

...
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

修改到这里便一切正常了

下一篇:  为Django ckeditor配置上传视频
上一篇:  centos7上安装配置phpmyadmin

共有0条评论

添加评论

暂无评论