django-jsonforms如何限制对象属性折叠面板可添加的字段数量?
django-jsonforms动态属性数量限制配置说明
django-jsonforms 支持约束可折叠对象属性面板的动态添加字段数量,该配置不属于options参数的自定义配置项,而是直接遵循JSON Schema原生标准规则定义,不需要额外引入插件或修改初始化逻辑。
具体配置方法
在你传入的jsonschema中,对应开启了additionalProperties: True的object类型节点上,添加两个标准校验关键字即可:
minProperties:设置该对象节点下最少需要存在的字段总数,包含固定定义的字段和用户动态添加的字段,提交时如果字段数低于该值会自动触发校验报错maxProperties:设置该对象节点下最多允许存在的字段总数,当用户动态添加字段达到这个上限时,面板上的新增字段按钮会自动置灰禁用,无法继续添加
代码示例
你原有初始化代码不需要调整options配置,只需要修改对应的JSON Schema即可:
# 你的JSON Schema对应对象节点配置参考 jsonschema = { "type": "object", # 原有固定属性定义 "properties": { "name": {"type": "string"} }, # 开启动态属性 "additionalProperties": True, # 新增数量限制配置 "minProperties": 2, "maxProperties": 6 } # 表单初始化代码保持原有逻辑即可 options = {'additionalProperties': True} form = JSONSchemaForm(schema=jsonschema, options=options, ajax=False)
文档说明
这两个关键字是JSON Schema Draft 4及以上版本的标准规范,django-jsonforms全版本默认兼容该规则,不需要查找框架专属的配置文档,所有JSON Schema原生的对象校验规则都可以直接生效。
内容的提问来源于stack exchange,提问作者viciousvegs
相关产品推荐
相关产品推荐

