WTForms中访问RadioField的子字段
建议的方式来建模模板HTML的单选框输入是:
{% for subfield in form.radio %}
<tr>
<td>{{ subfield }}</td>
<td>{{ subfield.label }}</td>
</tr>
{% endfor %}
但是如果我在单选框的子字段之间有一些元素呢?我想做成这样:
{{ form.radio[0] }} {{ form.radio[0].label }}
<div>Something 1</div>
<div>Something 2</div>
<div>Something 3</div>
{{ form.radio[1] }} {{ form.radio[1].label }}
<div>Something 4</div>
{{ form.radio[2] }} {{ form.radio[2].label }}
有没有办法像这样访问子字段呢?
1 个回答
2
把它转换成列表,你就可以继续了。
In [1]: import wtforms
In [2]: class Form(wtforms.form.Form):
...: radio = wtforms.fields.RadioField(choices=((1, 1), (2, 2)))
...:
In [3]: f = Form()
In [4]: option1, option2 = f.radio
In [5]: print option1
<input id="radio-0" name="radio" type="radio" value="1">
In [6]: print option2
<input id="radio-1" name="radio" type="radio" value="2">
In [7]: opts = list(f.radio)
In [8]: print opts[0]
<input id="radio-0" name="radio" type="radio" value="1">
In [9]: print opts[1]
<input id="radio-1" name="radio" type="radio" value="2">