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