如何在 jinja2 中获取 WTForms 验证器
How to get WTForms Validator in jinja2
我想做的是检查表单对象具有什么类型的表单验证器,以便我可以根据这些属性呈现字段。例如,如果表单具有最大长度验证,则将最大长度 属性 添加到 html 表单。
我在想它是这样工作的:
zip_code = TextField('Zip Code', [validators.Length(min=5, max=11)])
将像这样转到 Jinja2 宏:
{% if field.valdator "has max length" %}
{% set class = class + ' maxlength="11" ' %}
{% endif %}
{{ field(class=class, **kwargs) }}
{{ form.field.validators }}
returns 一个列表,因此您可以通过索引值获取验证器。
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 %}
我想做的是检查表单对象具有什么类型的表单验证器,以便我可以根据这些属性呈现字段。例如,如果表单具有最大长度验证,则将最大长度 属性 添加到 html 表单。
我在想它是这样工作的:
zip_code = TextField('Zip Code', [validators.Length(min=5, max=11)])
将像这样转到 Jinja2 宏:
{% if field.valdator "has max length" %}
{% set class = class + ' maxlength="11" ' %}
{% endif %}
{{ field(class=class, **kwargs) }}
{{ form.field.validators }}
returns 一个列表,因此您可以通过索引值获取验证器。
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 %}