Flask WTForms Select设置动态data属性时htmx路径参数无法解析怎么办
问题原因
你的猜测完全正确,{{ }} 是Jinja模板标记表达式的分隔符,不支持嵌套使用,因此内层的{{pulley_id}}会被识别为普通字符串,不会触发变量解析。
解决方案
直接在表达式内部拼接字符串和变量即可,不需要额外加{{ }}包裹变量,常用两种拼接方式:
- 方法1:使用Jinja专属字符串拼接符
~
适配性更强,自动转换变量类型完成拼接,适合简单拼接场景:{{ form.dia(class="form-select", **{'hx-post': "/pulleys/" ~ pulley_id ~ "/hub_type", 'hx-target': "#hub-shaft-selection", 'hx-swap': "innerHTML"}) }} - 方法2:使用Python原生format方法
适合路径参数较多、拼接逻辑复杂的场景,可读性更高:{{ form.dia(class="form-select", **{'hx-post': "/pulleys/{}/hub_type".format(pulley_id), 'hx-target': "#hub-shaft-selection", 'hx-swap': "innerHTML"}) }}
以上两种写法在pulley_id=1时,都会渲染出你需要的hx-post="/pulleys/1/hub_type"属性。
内容的提问来源于stack exchange,提问作者Shreko
相关产品推荐
相关产品推荐

