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

如何让Django CKEditor编辑器尺寸跟随窗口大小自适应调整

修复步骤

1. 修正forms.py的部件配置

你当前给Body字段指定了原生Textarea部件,替换为CKEditor官方提供的部件即可保留编辑器原生能力:

# 头部先导入CKEditorWidget
from ckeditor.widgets import CKEditorWidget

# 部件配置部分修改为如下内容
widgets = {
    'created_date': forms.DateTimeInput(attrs={
        'class':'form-control',
        'readonly':'True',
        }) ,
    'Title' : forms.TextInput(attrs={
        'class':'form-control'
        }),
    # 替换为CKEditorWidget,不需要手动加ckeditor相关类名
    'Body': CKEditorWidget(attrs={
        'class':'form-control',
        'spellcheck':'False'}),
}

2. 调整settings.py的CKEditor配置

增加宽度自适应配置,开启弹性缩放能力:

CKEDITOR_CONFIGS = {
    'default': {
        'toolbar': [
            ['Undo', 'Redo',
             '-', 'Bold', 'Italic', 'Underline',
             '-', 'Link', 'Unlink', 'Anchor',
             '-', 'Format',
             '-', 'Maximize',
            ],
        ],
        'toolbarCanCollapse': True,
        # 新增以下自适应配置
        'width': '100%', # 宽度默认占满父容器
        'resize_enabled': True, # 允许用户拖拽缩放编辑器
        'resize_dir': 'vertical', # 仅允许垂直拖拽缩放,避免横向破坏自适应布局
        # 如需高度自动适配输入内容可加以下两行配置
        'extraPlugins': 'autogrow',
        'autoGrow_minHeight': 200,
    },
}

3. 增加CSS兜底样式

在template.html中加入样式,强制编辑器容器宽度自适应,避免框架默认固定宽度样式覆盖配置:

{{ form.media }}
<style>
/* 兼容CKEditor4 */
.cke {
    width: 100% !important;
}
/* 兼容CKEditor5 */
.ck.ck-editor {
    width: 100% !important;
}
.ck-editor__editable {
    width: 100% !important;
}
</style>
{{form.as_p}}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:39:00