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
相关产品推荐
相关产品推荐

