
本文介绍如何彻底屏蔽 django admin 中 `richtextuploadingfield` 所加载的 ckeditor 4 显示的“版本不安全”升级提醒(如 `ckeditor 4.22.1 is not secure`),通过正确配置 `config.versioncheck = false` 实现静默关闭,无需升级底层编辑器。
CKEditor 4 自 4.22.0 版本起引入了内置的安全版本检查机制,会在编辑器初始化时向官方 CDN 发起请求,比对当前版本与最新 LTS 版本,并在工具栏右下角弹出醒目的黄色警告提示(例如:“This CKEditor 4.22.1 version is not secure. Consider upgrading to the latest one, 4.24.0-lts.”)。该行为无法通过 Django-CKEditor 的 Python 层设置(如 CKEDITOR_UPDATE_NOTIFICATION = False)禁用,也无法靠 "ignoreUpdates": true 或 "updateCheck": false 等无效键名解决——因为 CKEditor 4 原生配置中对应的属性名为 versionCheck,且其值必须为布尔类型 false。
✅ 正确解决方案是在 CKEDITOR_CONFIGS 的对应配置项中,直接注入原生 JavaScript 配置字段 versionCheck: false:
# settings.py
CKEDITOR_CONFIGS = {
"default": {
"skin": "moono",
"toolbar": "Custom",
"allowedContent": True,
"extraAllowedContent": "object[id,name,width,height];",
"extraPlugins": "iframe",
"iframe_attributes": {
"sandbox": "allow-scripts allow-same-origin allow-popups allow-presentation allow-forms",
"allowfullscreen": "",
"loading": "lazy",
"referrerpolicy": "no-referrer-when-downgrade",
},
# ? 关键:禁用版本检查(必须小写驼峰,布尔值 false)
"versionCheck": False,
"toolbar_Custom": [
# ...(保持原有 toolbar 配置不变)
],
"language": "en",
}
}⚠️ 注意事项:
- versionCheck 是 CKEditor 4 原生 JS 配置项(官方文档),不是 Django-CKEditor 封装的 Python 参数,因此必须作为字典键直接写入 CKEDITOR_CONFIGS 中;
- 值必须为 Python 的 False(会序列化为 JS 的 false),不可写作字符串 "false" 或 "False";
- 此配置仅阻止检查行为与提示显示,不会影响编辑器功能,也不代表跳过真实安全风险——建议长期仍应通过升级 django-ckeditor 及其绑定的 CKEditor 4 资源(如替换 ckeditor/ckeditor.js)来获取安全补丁;
- 若使用自定义 CKEditor 4 构建包(如从官网下载),请确保 ckeditor.js 文件本身未被篡改或缓存旧版;可配合浏览器硬刷新(Ctrl+Shift+R)验证警告是否消失。
完成配置后,重启 Django 开发服务器,进入 Admin 页面打开任意含 RichTextUploadingField 的表单,即可确认右下角警告已完全消失。该方案兼容 django-ckeditor==6.7.0 及所有基于 CKEditor 4.x 的版本,稳定可靠,是目前最简洁、无副作用的禁用方式。










