Python 如何在jinja2中获取WTForms验证程序
我想做的是检查表单对象具有哪种类型的表单验证器,以便根据这些属性呈现字段。例如,如果表单具有“最大长度”验证,则将“最大长度”属性添加到html表单中 我想它是这样工作的:Python 如何在jinja2中获取WTForms验证程序,python,flask,jinja2,wtforms,flask-wtforms,Python,Flask,Jinja2,Wtforms,Flask Wtforms,我想做的是检查表单对象具有哪种类型的表单验证器,以便根据这些属性呈现字段。例如,如果表单具有“最大长度”验证,则将“最大长度”属性添加到html表单中 我想它是这样工作的: zip_code = TextField('Zip Code', [validators.Length(min=5, max=11)]) 将转到如下所示的Jinja2宏: {% if field.valdator "has max length" %} {% set class = class + ' maxlengt
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}}
返回一个列表,因此您可以按索引值获取验证器
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 %}
类ZipCodeForm(表单):
邮政编码=StringField(“邮政编码,[validators.Length(3,45)])
def寄存器():
form=ZipCodeForm()
返回呈现模板('register.html',form=form)
#register.html
...
{%macro textfield(type=text,max=20)%}
{%endmacro%}
{%if form.zip_code.validators[0][“max”]%}
文本字段(最大值=60)
{%endif%}
{{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 %}
类ZipCodeForm(表单):
邮政编码=StringField(“邮政编码,[validators.Length(3,45)])
def寄存器():
form=ZipCodeForm()
返回呈现模板('register.html',form=form)
#register.html
...
{%macro textfield(type=text,max=20)%}
{%endmacro%}
{%if form.zip_code.validators[0][“max”]%}
文本字段(最大值=60)
{%endif%}