То, о чем я прошу, на самом деле довольно просто. Я хочу создать форму с некоторыми полями и отправить и Отменить button. Я хочу использовать функцию шаблона quick_form
в Flask-Bootstrap, чтобы сохранить накладные расходы на моем шаблоне. Моя форма выглядит следующим образом:WTForms: Отключить проверку на стороне клиента при отмене
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 %}
Как можно было бы подозревать, я хочу, чтобы проверить и принять входные значения на представить и пропустить проверку на отменить. Таким образом, моя функция просмотра выглядит так, как ожидалось.
@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)
Теперь, если отменить нажимаются не должна быть логически никакой проверки и перенаправление должно иметь место. Однако я столкнулся с проблемой, что моя функция просмотра даже не вызвана, если я нажимаю либо submit, либо отменить из-за проверки на стороне клиента.
<input class="form-control" id="name" name="name" required="" type="text" value="">
Есть ли способ отключить проверку на стороне клиента на WTForms?
Вы можете просто сбросить кортеж флагов установить: класс 'MyInputRequired (wtforms.validators.InputRequired) : 'next line:' field_flags =() '(не может получить правильное форматирование ....) – VPfB
@VPfB Это отличное решение. Если вы хотите создать для него ответ, я бы принял его. – MrLeeh
Я думаю, что это очень похоже на ваше решение. И сначала вы пришли к идее. – VPfB