Я пытаюсь проверить DecimalRangeField
, так что пользователь должен предоставить ввод. Проблема в том, что я хочу, чтобы значение по умолчанию, например, 50 (ползунок появляется в середине), приводит к сбоям встроенных валидаторов DataRequired
и InputRequired
(я пробовал оба), потому что они принимают значение по умолчанию в качестве заданный балл, даже если пользователь не показал никаких действий (по крайней мере, это то, что я думаю, что происходит).
Как я могу иметь какое-то значение по умолчанию, но все же проверить, предпринял ли пользователь какое-либо действие (щелкнув где-нибудь на ползунке, даже если в конце оно совпадает со значением по умолчанию), и отобразить ошибку, такую как «Это поле обязательно для заполнения» "на случай, если пользователь не коснулся слайдера? Нужен ли для этого специальный валидатор?
Спасибо за любые предложения.
Вот соответствующие части кода:
index.py
@app.route("/questionnaire1", methods=['GET', 'POST'])
def controlAndDeliberation():
form = controlAndDeliberationForm()
if form.validate_on_submit():
return redirect(url_for())
return render_template('control_and_deliberation.html', form=form)
questionnaires.py
class controlAndDeliberationForm(FlaskForm):
perceivedControlQ1 = DecimalRangeField(
'1. How much control did you feel you have?',
default=50,
validators=[DataRequired()]
)
control_and_deliberation.html
<div class="form-group">
{{ form.perceivedControlQ1.label }}<br>
{{ form.perceivedControlQ1 }}
{% for error in form.perceivedControlQ1.errors %}
<span style="color: #d60000; font-size: 15px">{{ error }}</span>
{% endfor %}
</div>