Hol*_*son 1 python jinja2 flask wtforms flask-wtforms
我想要做的是检查表单对象具有哪种类型的表单验证器,以便我可以基于这些属性呈现字段.例如,如果表单具有最大长度验证,则将max-length属性添加到html表单.
我在想它的工作方式是这样的:
zip_code = TextField('Zip Code', [validators.Length(min=5, max=11)])
Run Code Online (Sandbox Code Playgroud)
将会像这样进入Jinja2宏:
{% if field.valdator "has max length" %}
{% set class = class + ' maxlength="11" ' %}
{% endif %}
{{ field(class=class, **kwargs) }}
Run Code Online (Sandbox Code Playgroud)
{{ form.field.validators }} 返回一个列表,因此您可以通过索引值获取验证器.
class ZipCodeForm(Form):
zip_code = StringField("Zip Code", [validators.Length(3,45)])
def register():
form = ZipCodeForm()
return render_template('register.html', form=form)
# register.html
...
{% macro textfield(type=text, max=20) %}
<input type={{type}}, size={{max}} >
{% endmacro %}
{% if form.zip_code.validators[0]["max"] %}
textfield(max=60)
{% endif %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
817 次 |
| 最近记录: |