flask-wtform占位符行为

时间:2015-08-12 01:20:10

标签: python flask flask-wtforms

形式:

5

为什么这样做?

class SignUpForm(Form):
    username = TextField("Username: ",validators=[Required(),Length(3,24)])

但不是直接使用占位符作为form = SignUpForm() form.username(placeholder="username") 的参数?

SignUpForm

它发出此错误class SignUpForm(Form): username = TextField("Username: ",placeholder="username",validators=[Required(),Length(3,24)])

我对此有点疑惑,因为直接在类上定义它应该是相同的 正在做TypeError: __init__() got an unexpected keyword argument 'placeholder',但为什么会发出错误?

1 个答案:

答案 0 :(得分:4)

定义字段与渲染字段不同。 Calling a field to render it accepts arbitrary keyword args to add attributes to the input.该库不是为了在定义字段时采用任意args而设计的。

如果您想要一个快捷方式来渲染一个标签作为占位符的字段,您可以编写一个Jinja宏。

{% macro form_field(field) %}
{{ field(placeholder=field.label.text) }}
{% endmacro %}