11

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

例如,假设您想创建一个具有 placeholder="foo"、必需和自动对焦属性的 TextField。这将如何在 WTForms 中完成?

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

请注意,placeholder="foo"这在 WTForms 中很容易完成。autofocusrequired,因为它们没有价值,所以......好吧,据我所知,WTForms 不支持。

WTForms 可以支持吗?

4

3 回答 3

30

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

{{ 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 有点冗长。

于 2012-03-01T20:12:15.767 回答
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 %}

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

于 2012-04-19T06:32:43.237 回答
0

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

查看有关自定义小部件的文档

于 2010-08-27T04:28:23.663 回答