Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在jinja2中获取WTForms验证程序_Python_Flask_Jinja2_Wtforms_Flask Wtforms - Fatal编程技术网

Python 如何在jinja2中获取WTForms验证程序

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

我想做的是检查表单对象具有哪种类型的表单验证器,以便根据这些属性呈现字段。例如,如果表单具有“最大长度”验证,则将“最大长度”属性添加到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}}
返回一个列表,因此您可以按索引值获取验证器

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%}