Flask WTForms: несколько RadioFields на странице - PullRequest
0 голосов
/ 09 июля 2020

Мне нужно создать страницу со списком вопросов и их ответов Да, Нет, Н / Д:

"Вопрос 1" Да o Нет o Н / Д o «Вопрос 2» Да o Нет o Н / Д o … Отправить

Однако, когда страница отображается, она позволяет сделать только один выбор, независимо от количества вопросов. Это также проходит проверку, чего нельзя допускать. Как правильно получить список независимых друг от друга RadioFields? Количество необходимых полей определяется количеством вопросов, которые хранятся в базе данных.

Моя попытка:

Я создал класс, который содержит 3 варианта выбора RadioField:

class QuestionResponse(Form):
    choices = [('1', 'Yes'), ('0', 'No'), ('-1', 'N/A')]
    yes_no_na = RadioField(label='ynna', choices=choices, validators=[validators.DataRequired(message='Select a response')])

В моей функции просмотра я l oop, чтобы создать список этих форм, что-то вроде:

responses = []
for i in range(number_of_questions):
    responses.append(QuestionResponse())

И я передаю ответы шаблону. Код Jinja / html:

{% for r in responses %}
<tr>
    {% for subfield in r.yes_no_na %}
        <td>{{ subfield.label }} {{ subfield }} | </td>
    {% endfor %}
</tr>
{% endfor %}
...