形式:
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'
,但为什么会发出错误?
答案 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 %}