步骤
- 安装ckeditor
pip install django-ckeditor
- 安装app
# settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'ckeditor', # 注册ckeditor富文本 'ckeditor_uploader', # ckeditor上传功能 'blog', ]
- 配置media
# settings.py # media MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, "media")
- 配置ckeditor上传路径
# 配置ckeditor上传路径 CKEDITOR_UPLOAD_PATH = 'upload/' # 会在media文件夹中创建
- url配置静态路径
from django.conf import settings from django.conf.urls.static import static urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
- url配置ckeditor路径
# 需要用到的url.py urlpatterns = [ # 其他的url path("ckeditor", include("ckeditor_uploader.urls")), ] urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
- 在需要的模型字段上配置Fields
from django.db import models # from ckeditor.fields import RichTextField # 默认不带上传功能 from ckeditor_uploader.fields import RichTextUploadingField class Blog(models.Models): # 其他字段 content = RichTextUploadingField(verbose_name="内容") # 其他配置
- admin中注册一下,可以在后台看
# admin.py from django.contrib import admin from .models import Blog @admin.register(Blog) class BlogAdmin(admin.ModelAdmin): # get_read_times是ReadTimesMixin中自定义的函数 # 这里主要是content字段 list_display = ("id", "type_name", "get_read_times", "title", "content", "create_time", "last_update_time")
- 使用ckeditor
保存之后可以在media/upload/
下查看, upload和日期是自动生成