如何为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
相关产品推荐
相关产品推荐

