ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-08-07 14:31:49  阅读:181  来源: 互联网

标签:ckEditor models django 编辑器 ckeditor contrib Django name


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) 重新执行数据迁移

标签:ckEditor,models,django,编辑器,ckeditor,contrib,Django,name
来源: https://www.cnblogs.com/minqiliang/p/16559000.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有