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

Docassemble字典式选项中show if/hide if的实现方法问询

在Docassemble中动态控制选择题选项的显示/隐藏

完全可以通过给choices字典添加键值对实现类似show if/hide if的效果,但你示例里用的show_if/hide_if键不对,得换成Docassemble官方支持的show和hide键,值为布尔表达式字符串或直接的布尔值。

核心用法说明

  • show:当指定的布尔表达式为True时,显示当前选项
  • hide:当指定的布尔表达式为True时,隐藏当前选项
  • 表达式可以是任意合法的Python布尔逻辑,比如直接引用布尔变量、比较运算、多条件组合等,只要变量已提前定义即可。

修正后的示例代码

question: |
  你穿哪种类型的鞋子?
field: target_variable
choices:
  code: |
    [{'sneakers': "运动鞋",
      'help': "舒适的日常鞋款。",
      'css class': "sneakers",
      'color': "secondary"},
     {'sandals': "凉鞋",
      'help': "适合夏天穿。",
      'css class': "sandals",
      'color': "danger",
      'hide': "shopping_for_arctic_attire"}, # 当shopping_for_arctic_attire为True时隐藏
     {'clogs': "木屐",
      'help': "嬉皮风格鞋款。",
      'css class': "clogs",
      'color': "warning",
      'show': "needs_arch_support"}, # 当needs_arch_support为True时显示
     {'other': "其他",
      'default': True,
      'help': "因为上面的都不合心意。",
      'css class': "othershoe",
      'color': "success"}]

额外注意事项

  • 要确保shopping_for_arctic_attire、needs_arch_support这些变量已经在Docassemble文档中定义(比如通过field块或code块声明为布尔类型)
  • 如果需要复杂逻辑,比如多条件组合,直接写表达式即可,例如'show': "age > 60 and has_back_pain"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 20:47:20