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

Wagtail RichTextField发布内容丢失空格与缩进问题求助

Wagtail博客代码缩进保存后消失的解决办法

问题根源

你用的RichTextField是富文本字段,默认会自动过滤或格式化多余的空格、缩进——它的设计初衷是处理普通排版文本,而非代码内容,直接粘贴代码进去自然会丢失缩进。

解决方案

方案1:改用纯文本字段存储代码

把RichTextField换成TextField,它不会修改文本格式,能完整保留代码的缩进和空格:

class BlogPage(Page):
    body = TextField(blank=True)  # 替换原有的RichTextField

之后在模板渲染时,用<pre><code>{{ page.body }}</code></pre>包裹内容,再搭配前端代码高亮库(比如Prism.js)就能正常显示带缩进的代码。

方案2:保留RichTextField但用代码块功能

如果不想替换字段,需要开启Wagtail编辑器的代码块功能,确保代码被正确包裹:

  1. 在项目settings.py中配置富文本编辑器,开启code功能:
WAGTAIL_RICH_TEXT_EDITORS = {
    'default': {
        'WIDGET': 'wagtail.admin.rich_text.DraftailRichTextArea',
        'OPTIONS': {
            'features': [
                'code',
                'bold', 'italic', 'link'  # 保留你需要的其他编辑功能
            ]
        }
    }
}
  1. 编辑博客时,不要直接把代码粘贴到普通文本区域,而是选中代码内容,点击编辑器里的「代码块」按钮(通常是</>图标),将代码包裹在代码块中再保存。这样编辑器会保留代码的缩进格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:35:23