Django中添加富文本编辑器

Posted 巅峰之斗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django中添加富文本编辑器相关的知识,希望对你有一定的参考价值。

使用的是CKeditor这个模块

1.安装:

pip install django-ckeditor

2.将ckeditor注册到settings.py文件中, 并添加ckeditor的url到你项目的urls.py文件中

技术分享图片
INSTALLED_APPS = [
    ...
    ‘ckeditor‘
]


urlpatterns = [
  ...
  url(r‘^ckeditor/‘, include(‘ckeditor_uploader.urls‘)),
]
技术分享图片

3.在models.py文件中使用ckeditor的富文本字段RichTextField替换TextField就行,用法不变。

from ckeditor.fields import RichTextField
...
content = RichTextField(verbose_name=u‘内容‘)

 

4.在settings.py文件中写入cdeditor的配置

技术分享图片
# ckeditor config
CKEDITOR_UPLOAD_PATH = ‘article_files/‘
CKEDITOR_JQUERY_URL =‘js/jquery-3.2.1.min.js‘
CKEDITOR_IMAGE_BACKEND = ‘pillow‘
CKEDITOR_CONFIGS = {
    ‘default‘: {
        ‘language‘: ‘zh-cn‘,
        ‘toolbar_YourCustomToolbarConfig‘: [

            {‘name‘: ‘clipboard‘, ‘items‘: [‘Undo‘, ‘Redo‘, ‘-‘, ‘Cut‘, ‘Copy‘, ‘Paste‘, ‘PasteText‘, ‘PasteFromWord‘]},
            {‘name‘: ‘paragraph‘, ‘items‘: [‘NumberedList‘, ‘BulletedList‘, ‘-‘, ‘Outdent‘, ‘Indent‘, ‘-‘, ‘Blockquote‘]},
            {‘name‘: ‘insert‘, ‘items‘: [‘Image‘, ‘Table‘, ‘HorizontalRule‘, ‘Smiley‘]},
            {‘name‘: ‘links‘, ‘items‘: [‘Link‘, ‘Unlink‘, ‘Anchor‘]},
            {‘name‘: ‘editing‘, ‘items‘: [‘Find‘, ‘Replace‘, ‘-‘]},
            {‘name‘: ‘tools‘, ‘items‘: [‘Maximize‘]},
            ‘/‘,
            {‘name‘: ‘styles‘, ‘items‘: [‘Format‘, ‘Font‘, ‘FontSize‘]},
            {‘name‘: ‘basicstyles‘,
             ‘items‘: [‘Bold‘, ‘Italic‘, ‘Underline‘, ‘Strike‘, ‘-‘, ‘RemoveFormat‘]},
            {‘name‘: ‘colors‘, ‘items‘: [‘TextColor‘, ‘BGColor‘]},
            {‘name‘: ‘paragraph‘,
             ‘items‘: [‘JustifyLeft‘, ‘JustifyCenter‘, ‘JustifyRight‘, ‘JustifyBlock‘]},
            {‘name‘: ‘document‘, ‘items‘: [‘Source‘]},
        ],
        ‘toolbar‘: ‘YourCustomToolbarConfig‘,  # put selected toolbar config here
        ‘width‘: ‘100%‘,
        ‘tabSpaces‘: 4,
        ‘extraPlugins‘: ‘,‘.join([
            ‘uploadimage‘,  # the upload image feature
            # your extra plugins here
            ‘div‘,
            ‘autolink‘,
            ‘autoembed‘,
            ‘embedsemantic‘,
            ‘autogrow‘,
            ‘widget‘,
            ‘lineutils‘,
            ‘clipboard‘,
            ‘dialog‘,
            ‘dialogui‘,
            ‘elementspath‘
        ]),
    }
}
CKEDITOR_ALLOW_NONIMAGE_FILES = False
CKEDITOR_BROWSE_SHOW_DIRS = True
技术分享图片

5.如果要实现编辑器中图片上传的功能,还需要一些配置:

  在settings.py文件中注册‘ckeditor_uploader‘

  

INSTALLED_APPS = [

    ‘ckeditor‘,
    ‘ckeditor_uploader‘
]

  我在上面的配置中写一个路径:CKEDITOR_UPLOAD_PATH = ‘article_files/‘ 

  这是一个相对路径,你需要配置好media:

# media_confige
MEDIA_URL = ‘/media/‘
MEDIA_ROOT = os.path.join(BASE_DIR, ‘media‘)

  之后上传图片的保存路径就是‘/media/article_files/...‘

  在models.py中就需要使用RichTextUploadingField字段

  

from ckeditor_uploader.fields import RichTextUploadingField
。。。
class MyModel(models.Model):
    content = RichTextUploadingField(verbose_name=u‘内容‘)

 

文档:https://github.com/django-ckeditor/django-ckeditor






以上是关于Django中添加富文本编辑器的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# 和 OleDB 向 Access 数据库表中添加富文本列?

django 开发之给admin 模块添加富文本编辑器

万里长征第二步——django个人博客(第六步 ——添加富文本编辑器)

Django内容增加富文本功能

APN、GCM(FCM):如何在通知中添加富媒体?

向页面添加富文本编辑器