我需要创建一个包含问题列表及其“是,否,不适用”答复的页面:
“问题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 %}