gpt4 book ai didi

python - WTForms:在取消时禁用客户端验证

转载 作者:行者123 更新时间:2023-12-03 23:38:16 26 4
gpt4 key购买 nike

我要求的其实很简单。我想创建一个包含一些字段和一个提交和一个取消按钮的表单。我想使用 Flask-Bootstrap 的 quick_form 模板函数来降低模板中的开销。我的表格是这样的:

from flask_wtf import FlaskForm
from wtforms.validators import Required, Length


class SequenceForm(FlaskForm):
name = StringField('Name:', validators=[Required(), Length(1, 128)])

# some other fields here

submit = SubmitField('submit')
cancel = SubmitField('cancel')

模板:
{% extends 'base.html' %}
{% import 'bootstrap/wtf.html' as wtf %}

{% block content %}
<div class="container">
<form method="POST">
<div class="row">
<div class="col-xs-12">
{{ wtf.quick_form(form, button_map={'submit': 'primary'}) }}
</div>
</div>
</form>
</div>
{% endblock %}

正如人们所怀疑的那样,我想在提交时验证并接受输入值,并在取消时跳过验证。所以我的 View 函数看起来像预期的那样。
@main.route('sequence/', methods=['GET', 'POST'])
def sequence():
form = SequenceForm()
if request.method == 'POST':
if 'submit' in request.form:
if form.validate_on_submit():
print(form.duration.data)
else:
return redirect(url_for('main.index'))
return render_template('sequence.html', form=form)

现在,如果按下取消,则逻辑上应该没有验证并且应该进行重定向。但是,我遇到的问题是,如果由于客户端验证而按下提交或取消,我的 View 函数甚至不会被调用。
<input class="form-control" id="name" name="name" required="" type="text" value="">

有没有办法在 WTForms 上禁用客户端验证?

最佳答案

由于您使用 Flask-Bootstrap 的 quick_form() 宏,您可以将 novalidate 参数设置为 True 以禁用客户端验证(它将为您的 HTML novalidate 元素设置 <form> 属性):

{{ wtf.quick_form(form, novalidate=True) }}
如果你使用的是 Bootstrap-Flask,方法类似:
{{ render_form(form, novalidate=True) }}

关于python - WTForms:在取消时禁用客户端验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41300647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com