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

django-jsonforms中如何移除JSONSchemaForm字段的Json:标签?

移除django-jsonforms默认「Json:」标签解决方案

你之前尝试的修改字段label、在Schema中加label配置、更换widget不生效,核心原因是这个「Json:」标签既不来自Django表单字段的label属性,也不读取Schema配置,是组件渲染逻辑里的默认兜底文本,官方文档确实没有标注相关配置,下面两种方案都可以实现需求:

  • 方案1:给Widget传label参数(零模板修改,推荐)
    翻组件源码可以确认,JSONWidget初始化时支持接收label参数,优先级高于默认硬编码文本,定义表单字段时直接给widget传空字符串即可完全隐藏该标签,示例代码:
from django import forms
from jsonforms.forms import JSONSchemaField
from jsonforms.widgets import JSONWidget

# 修正后的JSON Schema(注意原配置数组子项的键写错了,JSON Schema规范用items而非products,会导致数组渲染异常)
product_schema =  {
    "title": "Product",
    "description": "A product",
    "type": "object",
    "properties": {
        "Products": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "minItems": 0,
            "maxItems": 5,
        }
    }
}

class ProductForm(forms.Form):
    form = JSONSchemaField(
        schema=product_schema,
        # 核心配置:传空字符串隐藏默认标签,需要自定义文本直接填对应值即可
        widget=JSONWidget(label="")
    )
  • 方案2:覆写渲染模板(适合旧版本库/需要深度定制样式场景)
    如果你使用的django-jsonforms版本较旧,不支持widget传label参数,可以通过覆写模板实现:
  1. 找到python环境中django-jsonforms安装目录下的templates/jsonforms/json_field.html模板文件
  2. 将该文件复制到你自身项目的模板目录,保持路径为templates/jsonforms/json_field.html
  3. 打开复制后的模板文件,找到<legend>Json:</legend>代码段,直接删除该行或修改为你需要的文本即可

注意:使用该方案需要保证你自身项目的app在settings.py的INSTALLED_APPS配置中排在jsonforms前面,确保Django优先加载你自定义的模板。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 03:24:28