use*_*828 8 python jinja2 flask wtforms
我想将"data-"属性添加到表单字段以与Bootstrap集成.我在模板中尝试了以下内容:
{{ form.test(data-toggle="toggle", data-size="mini", data-on="Yes", data-off="No", type="checkbox")}}
Run Code Online (Sandbox Code Playgroud)
并得到此错误:
TemplateSyntaxError: expected token ',', got '='
Run Code Online (Sandbox Code Playgroud)
为什么我会收到此错误,如何解决?
dav*_*ism 11
您需要使用有效的Python名称作为变量名称.因此,"数据切换"之类的名称无效,因为它们中包含" - ".更改名称以使用下划线,例如"data_toggle".对于无法识别的关键字,WTForms会自动将"_"转换为" - ".
{{ form.test(data_size="mini") }}
Run Code Online (Sandbox Code Playgroud)
您还可以使用dict解包来使用非有效变量的键传递关键字参数.
{{ form.name(**{"data-size": "mini"}) }}
Run Code Online (Sandbox Code Playgroud)
您可以设置字段的默认属性,而不是在渲染时设置属性render_kw.
class ExampleForm(Form):
name = StringField(render_kw={"data-size": "mini"})
Run Code Online (Sandbox Code Playgroud)