显示下拉列表的django表单导致typeError

时间:2013-04-03 05:56:41

标签: django forms typeerror

在我的应用中,我需要用户从下拉列表中选择一个整数值。我想我会为此创建一个表单,如下所示

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

我无法弄清楚我做错了什么..请你帮忙吗?

1 个答案:

答案 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')