使用FlaskForm和SelectMultipleField,我正在创建一个选择表,允许对多个选择进行排名:1,2,3,....
为了将选择放在表格中的网格图案中,我将每行作为自己的SelectMultipleField实例。
提交按钮仅返回SelectMultipleField(狗)的第一个实例的值。
如何让Select按钮在SelectMultipleField的所有实例中返回值?
这是我的表单模块中的类:
class LPRForm(FlaskForm):
party = ['Dogs', 'Cats', 'Rabbits', 'Birds']
dog = [('', 'D. Duke'), ('', 'R. Rusty'), \
('', 'T. Tucker'), ('', 'R. Roger')]
cat = [('', 'S. Shadow'), ('', 'M. Misty'), \
('', 'P. Patch'), ('', 'P. Paws')]
rabbit = [('', ''), ('', 'C. Clover'), ('', ''), ('', '')]
bird = [('', 'P. Pikachu'), ('', 'S. Starburst'), \
('', ''), ('', 'F. Flighty')]
vote_dog = SelectMultipleField('District', choices=dog,
option_widget=widgets.TextInput() )
vote_cat = SelectMultipleField('District', choices=cat,
option_widget=widgets.TextInput() )
vote_rabbit = SelectMultipleField('District', choices=rabbit,
option_widget=widgets.TextInput() )
vote_bird = SelectMultipleField('District', choices=bird,
option_widget=widgets.TextInput() )
submit = SubmitField('Cast Ballot')
这是html文件的相关部分:
<table style="width:100%" align="center">
<tr>
<td> </td>
{% for vote in form.vote_dog %}
{% if vote.label != '': %}
<td>{{ vote(size="2") }}</td> <td>{{ vote.label }}</td>
{% endif %}
{% endfor %}
</tr>
<tr>
<td> </td>
{% for vote in form.vote_cat %}
{% if vote.label != '': %}
<td>{{ vote(size="2") }}</td> <td>{{ vote.label }}</td>
{% endif %}
{% endfor %}
</tr>
<tr>
<td> </td>
{% for vote in form.vote_rabbit %}
{% if vote.label != '': %}
<td>{{ vote(size="2") }}</td> <td>{{ vote.label }}</td>
{% endif %}
{% endfor %}
</tr>
<tr>
<td> </td>
{% for vote in form.vote_bird %}
{% if vote.label != '': %}
<td>{{ vote(size="2") }}</td> <td>{{ vote.label }}</td>
{% endif %}
{% endfor %}
</tr>
</table>
</td>
</tr>
{{ form.submit }}
视图模块:
@app.route('/lpr', methods=['GET', 'POST'])
def lpr():
form = LPRForm()
return render_template('lpr.html', title='Home', form=form)
答案 0 :(得分:0)
我能够通过使用FormField来实现这一目标。但是,文档提供了一个默认分隔符-
。另外,我明确指出separator='-'
,但只有当我使用.
作为分隔符时,在调用类时,它才能正常工作,...即使使用separator='-'
。