WTForms ... html,自动对焦?

时间:2010-07-27 03:25:02

标签: python wtforms

是否可以在WTForms内部使用HTML5中使用的一些新属性?

例如,假设您要创建一个带有占位符=“foo”,必需和自动聚焦属性的TextField。如何在WTForms中完成?

在html中,它看起来像这样:<input maxlength="256" name="q" value="" placeholder="foo" autofocus required>

请注意,placeholder="foo"可以在WTForms中轻松完成。 autofocusrequired,因为它们没有价值,所以......好吧,就我所见,在WTForms中不受支持。

WTForms可以支持吗?

3 个答案:

答案 0 :(得分:24)

在昨天发布的WTForms 1.0中,HTML5紧凑语法现在是默认语法。现在你可以做(​​在jinja):

{{ form.field(autofocus=true, required=true, placeholder="foo") }}

请注意,在Jinja中,文字是true而不是True但是如果您要在python控制台中尝试这个,则需要使用python文字True来实现此目的。工作

在使用XHTML作为默认输出的WTForms 0.6.x中,你可以这样做。

{{ form.field(autofocus="autofocus", required="required", placeholder="foo" }}

这是在XHTML中表示布尔属性的推荐方法,这恰好仍然是100%有效的HTML5并且完全等效,尽管生成的HTML有点冗长。

答案 1 :(得分:3)

我是WTForms的新手,但在我看来,解决方案可以改进而不是使用:

{{ form.field(autofocus=true, required=true, placeholder="foo") }}

使用:

{% if field.flags.required %}
   {{ field(autofocus=true, required=field.flags.required, placeholder="foo") }}
{% else %}
   {{ field(autofocus=true, placeholder="foo") }}
{% endif %}

对于100%HTML5,WTForms似乎无法正确处理required=false并在HTML中设置attr required="False"而不是删除attr。在下一版WTForms中可以改进吗?

答案 2 :(得分:0)

您可能需要创建自定义小部件。

查看docs on custom widgets