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

如何在django-ckeditor==6.3.2中添加自定义模板?

解决django-ckeditor 6.3.2添加自定义模板的方法

核心思路:避免修改第三方包文件,在项目内维护自定义模板

直接修改site-packages里的CKEditor文件不可靠,更新包或重新部署时会丢失修改,且collectstatic不会优先采用这类修改。正确方式是在项目静态文件目录中创建自定义模板配置,通过settings.py指定加载。


步骤1:创建项目内的模板配置文件

  1. 在项目的静态文件目录(比如your_app/static/ckeditor/)下创建路径:plugins/templates/templates/
  2. 在该路径下新建custom_templates.js,内容如下:
CKEDITOR.addTemplates("default", {
    imagesPath: CKEDITOR.getUrl(CKEDITOR.plugins.getPath("templates") + "templates/images/"),
    templates: [
        {
            title: "欢迎模板",
            image: "template2.gif",
            description: "用于发送给客户的欢迎消息模板",
            html: '<h2>Welcome</h2><p>Hi, <strong>Name here</strong></p><p>You have recently shown an interest . . . </p>'
        },
        // 可继续添加更多模板
        {
            title: "通知模板",
            image: "template1.gif",
            description: "通用通知模板",
            html: '<h3>重要通知</h3><p>尊敬的用户:</p><p>[通知内容]</p>'
        }
    ]
});
  1. 若需要自定义模板预览图,将图片(如template2.gif)放到plugins/templates/templates/images/路径下。

步骤2:修改settings.py配置CKEditor

更新CKEDITOR_CONFIGS,指定加载自定义模板文件,并确保templates插件启用:

CKEDITOR_UPLOAD_PATH = "file_upload/"

CKEDITOR_CONFIGS = {
    'default': {
        'toolbar': 'full',
        # 确保Templates按钮在工具栏中(full工具栏默认包含,也可显式指定)
        'toolbar_Full': [
            ['Templates'],
            # 其他工具栏选项...
        ],
        # 指定加载自定义模板文件
        'templates_files': [
            '/static/ckeditor/plugins/templates/templates/custom_templates.js',
            # 可选:保留默认模板就添加此行,完全替换则移除
            # CKEDITOR.plugins.getPath('templates') + 'templates/default.js'
        ],
        'templates_replaceContent': True,  # 插入模板时替换现有内容
    },
}

步骤3:收集静态文件并测试

  1. 执行collectstatic命令,将项目内的静态文件收集到指定根目录:
python manage.py collectstatic
  1. 重启Django服务,打开富文本编辑器,点击「模板」按钮即可看到自定义模板。

关键说明

  • 禁止修改site-packages文件:第三方依赖文件属于外部资源,修改后无法持久化,不符合项目规范。
  • 模板加载优先级:templates_files配置的文件按顺序加载,同时保留默认模板文件时,自定义模板会和默认模板共存;仅保留自定义文件则完全替换默认模板。
  • 预览图路径:imagesPath自动指向CKEditor模板插件的images目录,使用自定义图片时确保路径正确,或直接使用绝对路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 11:48:20