正在进入ing...

django-ckeditor富文本使用

发布时间:2023-04-24 浏览量: 186 文章分类: python

Django Admin界面使用富文本

废话不多说,先上官网文档,基本什么都能在这里找得到。 先说背景: 如果你只是想在djangoadmin后台增加一个富文本编辑框,能满足简单的基本使用,那你可以看。如果你是要做一些复杂的功能,比如图片媒体上传、编辑器二次开发等,建议直接搞到前端项目中,别这么搞了。我们的目的只是想简单几分钟能让djangoadmin后台支持富文本编辑而已,不至于打字出去都一大堆。

安装

pip install django-ckeditor

注册

INSTALLED_APPS = [
    ...
    'ckeditor', # 注册
    ...
]

使用

还是很简单的。 在models.py按照下面的方式来就可以了。

from django.db import models
from ckeditor.fields import RichTextField

class Article(models.Model):
    title = models.CharField(max_length=30, verbose_name='标题')
    # 富文本
    content = RichTextField(verbose_name='正文')
    # 原模式
    # content = models.TextField(verbose_name='正文')

配置调整

其实完成上面的步骤后,正常更新数据库后,我们的后台已经是富文本了。不过有一些功能是不需要的,所以还可以在settings.py里面进行一下配置。(完整的配置你可以去上面我发的官方文档中查阅)

CKEDITOR_CONFIGS = {
    # django-ckeditor默认使用default配置
    'default': {
        # 编辑器宽度自适应
        'width': 'auto',
        'height': '250px',
        # tab键转换空格数
        'tabSpaces': 4,
        # 工具栏风格
        'toolbar': 'Custom',
        # 工具栏按钮
        'toolbar_Custom': [
            # 表情 代码块
            ['Smiley', 'CodeSnippet'],
            # 字体风格
            ['Bold', 'Italic', 'Underline', 'RemoveFormat', 'Blockquote'],
            # 字体颜色
            ['TextColor', 'BGColor'],
            # 链接
            ['Link', 'Unlink'],
            # 列表
            ['NumberedList', 'BulletedList'],
            # 最大化
            ['Maximize']
        ],
        # 加入代码块插件
        'extraPlugins': ','.join(['codesnippet']),
    }
}

展示

与普通的数据展示方法一样,使用模板语法插入字段名即可。值得注意的是,富文本是以类似HTML的方式进行存储的,使用在使用后还需要加上safe过滤器进行转义即可正常输出