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

如何为StreamField指定嵌套块默认值?Wagtail/CodeRedCMS开发求助

解决Wagtail/CodeRedCMS中StreamField嵌套块预填充问题

你的问题核心是嵌套块的结构层级没匹配CodeRedCMS内置块的定义——Responsive Grid Row(row块)的content字段只能容纳Column(column块),Text块需要放在Column的content里,而非直接放在Row下。

以下是正确的代码写法:

body = StreamField(
    LAYOUT_STREAMBLOCKS,
    null=True,
    blank=True,
    use_json_field=True,
    default=[
        ("row", {
            "content": [
                ("column", {
                    "size": "12",  # 根据需求设置列宽,"12"为全宽,支持"1"-"12"
                    "content": [
                        ("text", {"value": "foobar"})
                    ]
                })
            ]
        })
    ]
)

关键说明:

  • CodeRedCMS的row块仅作为容器,直接子元素必须是column块;
  • column块需要指定size属性(必填,对应Bootstrap的栅格列宽),它的content字段才是用来放置Text等内容块的地方;
  • 按此层级设置后,新建EventPage时会自动生成「Row → Column → Text」的完整嵌套结构,Text块内预填充指定内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 09:47:35