0

私のアプリでは、ユーザーがドロップダウン リストから整数値を選択する必要があります。以下のように、このためのフォームを作成すると考えました。

class CIForm(forms.Form):
    intervaloption = forms.ChoiceField(choices = [x for x in range(1,10)],label='Days taken')

ただし、djangoシェルで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 タプルのイテラブル (例: リストまたはタプル)。この引数は、モデル フィールドへのchoices 引数と同じ形式を受け入れます。詳細については、選択肢に関するモデル フィールドのリファレンス ドキュメントを参照してください。

このようなものが動作するはずです:

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 に答える