Django 中使用 ckEditor 生成文章编辑器

2022/8/7 23:23:06

本文主要是介绍Django 中使用 ckEditor 生成文章编辑器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Django 中使用 ckEditor 生成文章编辑器

(1) 安装第三方功能应用 Django CKEditor,并且设置改应用的功能

pip install django-ckeditor

(2) settings.py中注册Django CKEditor功能应用

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 添加 Django  CKEditor
    'ckeditor',
    'ckeditor_uploader',
]

#编辑器的配置信息
CKEDITOR_UPLOAD_PATH = "article_images" # 设置编辑器上传的图片的存储位置,在该文件夹在media文件夹下
CKEDITOR_CONFIGS = {
    'default': {
        'toolbar': 'Full'
    }
}  # 设置工具栏工具,full代表全部功能
CKEDITOR_ALLOW_NONIMAGE_FILES = False # 支持上传任何文件,不只是图片
CKEDITOR_BROWSE_SHOW_DIRS = True # 上传的文件显示在浏览器上

(3) 在主应用的urls.py文件中定义 Django CKEditor的路由信息

from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    # 设置编辑器的路由信息
    path('ckeditor/', include('ckeditor_uploader.urls')),
]

(4) 在模型中重新定义文章内容字段,将字段改为 Django CKEditor 定义的字段类型,例如:

class ArticleInfo(models.Model):
    author = models.ForeignKey(MyUser, on_delete=models.CASCADE, verbose_name='用户')
    title = models.CharField('标题', max_length=200)
    # 重新定义文章内容字段,使用RichTextUploadingField
    content = RichTextUploadingField(verbose_name='内容')
    articlephoto = models.ImageField('文章图片', blank=True, upload_to='images/article/')
    reading = models.IntegerField('阅读量', default=0)
    liking = models.IntegerField('点赞量', default=0)
    created = models.DateTimeField('创建时间', default=timezone.now)
    updated = models.DateTimeField('更新时间', auto_now=True)
    article_tag = models.ManyToManyField(ArticleTag, blank=True, verbose_name='文章标签')

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = '博文管理'
        verbose_name_plural = '博文管理'

(5) 重新执行数据迁移



这篇关于Django 中使用 ckEditor 生成文章编辑器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程