Wagtail StreamField能否设置多组默认值并自动生成条目?
在Wagtail中为StreamField自动生成多个带默认值的列表项
这个需求完全可行,你的代码写法有误,问题出在将多块默认值设置给了StructBlock,而非StreamField本身。StructBlock的default参数仅接受单个字典(对应一个StructBlock实例的默认值),要生成多个列表项,需要直接给StreamField配置default参数。
修正后的代码示例
fasiliteter = StreamField([ ('faselitet', blocks.StructBlock([ ('type', blocks.CharBlock()), ('ink', blocks.BooleanBlock()) ])), ], use_json_field=True, default=[ {'type': 'faselitet', 'value': {"type": "Ting", "ink": True}}, {'type': 'faselitet', 'value': {"type": "TAng", "ink": False}} ])
关键说明
- StreamField的
default是一个列表,每个元素是一个字典:type对应你定义的块标识名称(此处为faselitet)value对应StructBlock的字段值(单个字典,匹配StructBlock的字段结构)
- 创建新页面时,StreamField会自动加载这两个预定义的StructBlock项
- 如果需要限制用户不能删除少于指定数量的项,可以给StreamField添加
min_num=2参数,根据实际需求选择
内容的提问来源于stack exchange,提问作者Eirik Trygg
相关产品推荐
相关产品推荐

