我想在WTForms中的字段上添加一个占位符属性.我该怎么做?
abc = TextField('abc', validators=[Required(), Length(min=3, max=30)], placeholder="test")
Run Code Online (Sandbox Code Playgroud)
以上代码无效
如何添加具有值的占位符属性?
Cra*_*ast 108
针对WTForms 2.1进行了更新
您现在可以从WTForms 2.1(2015年12月)开始,通过使用render_kw=字段构造函数的参数来设置渲染关键字.
所以这个领域看起来像:
abc = StringField('abc', [InputRequired()], render_kw={"placeholder": "test"})
Run Code Online (Sandbox Code Playgroud)
注意虽然这是可能的; 它确实开始弥合代码和演示之间的界限; 所以明智地使用它!
(对于早于WTForms 2.1的版本,旧答案仍然适用)
placeholder 在WTforms 2.0.x及更低版本的Python构造函数中不支持.
但是,您可以在模板中轻松完成此操作:
{{ form.abc(placeholder="test") }}
Run Code Online (Sandbox Code Playgroud)
正确答案如下:
abc = TextField('abc', validators=[Required(), Length(min=3, max=30)], description="test")
Run Code Online (Sandbox Code Playgroud)
正如人们可以阅读的文件:
description – A description for the field, typically used for help text.
Run Code Online (Sandbox Code Playgroud)
然后在你的模板中:
{% import 'forms.html' as forms %}
{% for field in form %}
{{ forms.render_field(field) }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
render_field是forms.html中定义的宏:
{% macro render_field(field) -%}
{% if field.type == 'CSRFTokenField' %}
{{ field }}
{% if field.errors %}
<div class="warning">You have submitted an invalid CSRF token</div>
{% endif %}
{% elif field.type == 'HiddenField' %}
{{ field }}
{# any other special case you may need #}
{% else %}
<div class="form-group">
<label for="{{ field.label.field_id }}" class="col-sm-2 control-label">{{ field.label.text }}</label>
<div class="col-sm-10">
{{ field(placeholder=field.description) }}
{% if field.errors %}
<div class="alert alert-danger" role="alert">
{% for err in field.errors %}
<p>{{ err|e }}</p>
{% endfor %}
</div>
{% endif %}
</div>
</div>
{% endif %}
{%- endmacro %}
Run Code Online (Sandbox Code Playgroud)
小智 6
{{ form.username(class="input", placeholder="Please enter your username") }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30895 次 |
| 最近记录: |