烧瓶WTForms:页面上有多个RadioField

时间:2020-07-09 15:44:50

标签: python html flask jinja2 flask-wtforms

我需要创建一个包含问题列表及其“是,否,不适用”答复的页面:

“问题1”是o否o N / A o
“问题2”是o否o N / A o

提交

但是,页面呈现时,无论问题有多少,都只能进行一个选择。这也通过了验证,这是不允许的。获取相互独立的RadioField列表的正确方法是什么?所需的字段数由数据库中存储的问题数决定。

我的尝试:

我创建了一个包含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')])

在我的视图函数中,我循环创建这些形式的列表,例如:

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 %}

0 个答案:

没有答案