Question

The suggested method of modeling template HTML radio inputs is:

{% for subfield in form.radio %}
<tr>
    <td>{{ subfield }}</td>
    <td>{{ subfield.label }}</td>
</tr>
{% endfor %}

But what if I have some elements between radio subfields? I want to do something like this:

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

Is there a way to access subfileds like this?

Was it helpful?

Solution

Convert it to list and you'r good to go.

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">
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top