RadioField никогда не проверяет правильно - PullRequest
0 голосов
/ 12 декабря 2018

Я новичок в колбе и пытаюсь построить простой демографический опрос.Хотя проверка StringField (например, национальность) работает нормально, у меня проблемы с RadioField.Если я не предоставлю никаких данных для RadioField, сообщений об ошибках не будет.Я думаю, что проблема заключается в моем шаблоне jinja2, но я не могу найти то, что я делаю неправильно.

Есть предложения?

выдержка из main.py:

class DemographicsForm(FlaskForm):
Gender = RadioField(
                    'Gender',
                    choices=[('M', 'Male'), ('F', 'Female'), ('O', 'Other')],
                    validators=[InputRequired()]
                    )


@app.route("/demographics", methods=['GET', 'POST'])
def demographics():
    form = DemographicsForm()
    return render_template('demographics.html', title='Demographic Information', form=form)

выдержка из demographics.html:

<div class="form-group">
    {{ form.Gender.label(class='radio') }}

    {% if form.Gender.errors %}
       {{ form.Gender(class='radio is-invalid') }}
        <div class="invalid-feedback">
            {% for error in form.Gender.errors %}
                <span>{{ error }}</span>
            {% endfor %}
        </div>
    {% else %}
        {{ form.Gender(class='radio') }}
    {% endif %}
</div>

1 Ответ

0 голосов
/ 14 декабря 2018

На самом деле проблема связана с вашим кодом Jinja.То, как вы реализовали обработку ошибок, довольно запутанно.Это должно быть так просто:

<div class="form-group">
    {{ form.Gender.label(class='radio') }}
    {{ form.Gender(class='radio') }}
    {% for error in form.Gender.errors %}
        <span style="color: red;">[{{ error }}]</span>
    {% endfor %}
</div>

Таким образом, когда вы отправляете форму, не выбрав переключатель, на вашей странице появится сообщение об ошибке (в приведенном выше коде оно будет выделено красным цветом).) и в вашей консоли.

Подробнее здесь

...