在 flask wtforms jinja 上设置动态数据属性 select
setting a dynamic data attribute on flask wtforms jinja select
有一个 flask wtforms select 字段并尝试合并 htmx ajax 调用,它在数据属性中有破折号,所以我在 SO 上找到了如下解决方案:
{{ form.dia(class="form-select", **{'hx-post': "/pulleys/{{pulley_id}}/hub_type", 'hx-target': "#hub-shaft-selection", 'hx-swap': "innerHTML"}) }}
但是 {{pulley_id}} 没有被模板解析,我猜它已经在另一个 {{ }} 中了。
有没有一种方法可以构建如上所示的动态部分,使其最终成为
'hx-post'="/pulleys/1/hub_type"
当 pulley_id=1
完全呈现时
如果 pulley_id
是循环内或传递到 render_template
的变量,您应该能够格式化字符串:
{{ form.dia(class_="form-select", **{'hx-post': "/pulleys/%s/hub_type"|format(pulley_id), 'hx-target': "#hub-shaft-selection", 'hx-swap': "innerHTML"}) }}
注意:如果您尝试设置 HTML class 属性,您还需要 class_
而不是 class
。
有一个 flask wtforms select 字段并尝试合并 htmx ajax 调用,它在数据属性中有破折号,所以我在 SO 上找到了如下解决方案:
{{ form.dia(class="form-select", **{'hx-post': "/pulleys/{{pulley_id}}/hub_type", 'hx-target': "#hub-shaft-selection", 'hx-swap': "innerHTML"}) }}
但是 {{pulley_id}} 没有被模板解析,我猜它已经在另一个 {{ }} 中了。 有没有一种方法可以构建如上所示的动态部分,使其最终成为
'hx-post'="/pulleys/1/hub_type"
当 pulley_id=1
完全呈现时如果 pulley_id
是循环内或传递到 render_template
的变量,您应该能够格式化字符串:
{{ form.dia(class_="form-select", **{'hx-post': "/pulleys/%s/hub_type"|format(pulley_id), 'hx-target': "#hub-shaft-selection", 'hx-swap': "innerHTML"}) }}
注意:如果您尝试设置 HTML class 属性,您还需要 class_
而不是 class
。