在我的应用中,我需要用户从下拉列表中选择一个整数值。我想我会为此创建一个表单,如下所示
class CIForm(forms.Form):
intervaloption = forms.ChoiceField(choices = [x for x in range(1,10)],label='Days taken')
然而,当我尝试在django shell中使用as_p()显示它时,它抛出了一个TypeError
In [29]: f= CIForm()
In [30]: f
Out[30]: <__main__.CIForm object at 0xaa93eec>
In [31]: print f.as_p()
ERROR: An unexpected error occurred while tokenizing input
The following traceback may be corrupted or invalid
The error message is: ('EOF in multi-line statement', (41, 0))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
...
TypeError: 'int' object is not iterable
我无法弄清楚我做错了什么..请你帮忙吗?
答案 0 :(得分:2)
来自ChoiceField文档:
选择
可用作2元组的可迭代(例如,列表或元组) 这个领域的选择。此参数接受与。相同的格式 选择模型字段的参数。请参阅模型字段参考 有关更多细节的选择文档。
这样的事情应该有效:
class CIForm(forms.Form):
intervaloption = forms.ChoiceField(choices = [(str(x), str(x)) for x in range(1,10)], label='Days taken')