WTForms使用SelectField时出现"值太多无法解包"错误
我正在使用WTForms,想要显示一个SelectField
,但是遇到了以下错误:
>>> form.status()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python26\Lib\site-packages\wtforms\fields.py", line 136, in __call__
return self.widget(self, **kwargs)
File "C:\Python26\Lib\site-packages\wtforms\widgets.py", line 237, in __call__
for val, label, selected in field.iter_choices():
File "C:\Python26\Lib\site-packages\wtforms\fields.py", line 390, in iter_choices
for value, label in self.choices:
ValueError: too many values to unpack
这是我的表单:
class TestForm(Form):
status = SelectField(u'Status', choices=Test.statuses())
Test.statuses
这个静态方法返回的是一个字符串列表。我哪里做错了呢?
2 个回答
6
没关系,其实需要的是元组,而不是字符串:
>>> form.status.choices = [(status, status) for status in Test.statuses()]
>>> form.status()
u'<select id="status" name="status"><option value="Status1">Status1</option></select>'
24
它需要的是一个包含 (字符串, 字符串)
这种格式的元组的列表,而不是一个字符串的列表。