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

如何获取缺陷字段真实数据类型及允许值,解决pyral返回与UI不一致问题

pyral 1.4.2 字段类型与UI不一致的解决方案

类型不一致的原因

pyral的typedef()方法返回的是Rally REST API底层的存储属性类型,并非UI层的渲染控件类型,因此会出现下拉字段返回Rating/String而非DROP_DOWN的情况,二者属于不同层级的定义,不存在接口返回错误的问题。

从现有响应中映射UI显示的真实类型

你可以直接通过typedef()或schema接口返回的字段属性,自行映射得到和UI一致的类型,映射规则如下:

  • 字段存在非空AllowedValues属性,且AttributeType为STRING/RATING → 对应UI的DROP_DOWN
  • 字段存在非空AllowedValues属性,且AttributeType为COLLECTION → 对应UI的MULTI_SELECT_DROP_DOWN
  • AttributeType为BOOLEAN → 对应UI的CHECKBOX
  • AttributeType为DATE → 对应UI的DATE_PICKER
  • AttributeType为TEXT → 对应UI的MULTI_LINE_TEXT
  • 其他基础类型直接用AttributeType的值即可,和UI显示一致

获取缺陷全量字段、类型、允许值的方法

直接使用pyral内置的getSchema()方法即可,返回内容比typedef()更完整,包含所有属性的元数据,示例代码如下:

from pyral import Rally

# 初始化Rally连接,替换为你自己的连接参数
rally = Rally(
    server="你的Rally服务地址",
    apikey="你的API密钥",
    workspace="你的工作区名称",
    project="你的项目名称"
)

# 获取缺陷类型的完整schema
defect_schema = rally.getSchema("Defect")

for field in defect_schema.Attributes:
    # 字段显示名
    field_label = field.DisplayName
    # 字段存储名
    field_name = field.ElementName
    # 映射UI类型
    ui_type = ""
    if hasattr(field, "AllowedValues") and len(field.AllowedValues) > 0:
        if field.AttributeType == "COLLECTION":
            ui_type = "MULTI_SELECT_DROP_DOWN"
        else:
            ui_type = "DROP_DOWN"
    elif field.AttributeType == "BOOLEAN":
        ui_type = "CHECKBOX"
    elif field.AttributeType == "DATE":
        ui_type = "DATE_PICKER"
    elif field.AttributeType == "TEXT":
        ui_type = "MULTI_LINE_TEXT"
    else:
        ui_type = field.AttributeType
    # 获取允许值,过滤已弃用的选项
    allowed_values = []
    if hasattr(field, "AllowedValues"):
        allowed_values = [val.StringValue for val in field.AllowedValues if not val.Deprecated]
    
    # 可根据需求处理输出或存储
    print(f"字段显示名:{field_label},字段存储名:{field_name},UI类型:{ui_type},允许值:{allowed_values}")

注意事项

  • 上述逻辑对系统字段和自定义字段都生效,自定义下拉、多选字段均可正确识别
  • 关联类型字段(如用户、工作项关联)的AttributeType为OBJECT,允许值可通过对应对象的schema二次查询获取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 08:06:03