0

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

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

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

4

1 回答 1

2

ChoiceField文档中:

选择

2 元组的可迭代(例如,列表或元组)用作该字段的选择。此参数接受与模型字段的选择参数相同的格式。有关更多详细信息,请参阅有关选项的模型字段参考文档。

像这样的东西应该工作:

class CIForm(forms.Form):
    intervaloption = forms.ChoiceField(choices = [(str(x), str(x)) for x in range(1,10)], label='Days taken')
于 2013-04-03T06:05:31.450 回答