You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django项目中django-ckeditor-5文件上传报错求助

解决django-ckeditor-5文件上传报错的方案

1. 修正配置名称不匹配问题

你定义字段时用了config_name='news',但CKEDITOR_5_CONFIGS里的配置key是'extends',两者不对应会导致CKEditor无法加载正确配置,引发上传异常。将配置key改为与config_name一致的'news':

CKEDITOR_5_CONFIGS = {
    'news': {  # 此处修改为'news'
        'blockToolbar': [
            'paragraph', 'heading1', 'heading2', 'heading3',
            '|',
            'bulletedList', 'numberedList',
            '|',
            'blockQuote',
        ],
        # 其余配置项保持不变
    },
}

2. 补充自定义颜色变量定义

你的配置中使用了customColorPalette变量,但未提供该变量的定义代码,这会直接导致配置加载失败。添加变量定义示例:

# 先定义颜色变量
customColorPalette = [
    {'color': '#000000', 'label': 'Black'},
    {'color': '#FFFFFF', 'label': 'White'},
    {'color': '#FF0000', 'label': 'Red'},
    # 按需添加更多颜色
]

# 再编写CKEDITOR_5_CONFIGS配置
CKEDITOR_5_CONFIGS = {
    'news': {
        # 配置内容...
    }
}

3. 验证媒体文件基础配置

文件上传依赖Django媒体文件设置,确保settings.py中已配置:

MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'

同时在项目主urls.py中添加媒体文件路由:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    # 其他路由...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

4. 确认CKEditor5上传路由已配置

在项目urls.py中添加CKEditor5的上传路由:

urlpatterns = [
    # 其他路由...
    path("ckeditor5/", include('django_ckeditor_5.urls')),
]

5. 排查权限配置问题

CKEDITOR_5_FILE_UPLOAD_PERMISSION = "authenticated"要求用户必须登录才能上传,后台用户默认已认证,但可临时改为"all"排除权限问题:

CKEDITOR_5_FILE_UPLOAD_PERMISSION = "all"

若上传恢复正常,再改回"authenticated"并确认后台用户权限配置。

6. 清除缓存并重启服务

修改配置后,清除浏览器缓存,重启Django开发服务器,避免旧配置残留影响功能。


内容的提问来源于stack exchange,提问作者ArianNa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 16:13:13