2011-12-17 7 views
0

カテゴリには多くのオブジェクトがあります。 like複数選択欄について

English 
etc 
French 

私はそのカテゴリをmultiplechocieFieldに表示しようとしました。だから私は次のコードを使用しています。しかし、そのような最後のオブジェクトを表示するだけです。ここで French

私forms.pyが

class UserProfileForm(forms.Form): 
categories = Category.objects.all() 
for c in categories: 
    CHOICES = ((c.id,c.name),) 

answers = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=CHOICES) 

であるあなたは私を助けてくださいますか?ありがとうございました

更新:Chewieのソリューションを試しました。しかし、今私はあなたがforループの反復ごとにCHOICESに新しい値を(追加ではない)の再割り当てされ TemplateSyntaxError at /users/profile/ Caught ValueError while rendering: need more than 1 value to unpack

答えて

1

を取得しています。おそらくあなたは、そのフィールドに適切なForeignKeyを使用する必要があり、

class UserProfileForm(forms.Form): 
categories = Category.objects.all() 
CHOICES = [] 
for c in categories: 
    CHOICES.append((c.id, c.name)) 

answers = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=CHOICES) 

とにかく:それはのようなものでなければなりません。

しかし、あなた自身が動的にする選択肢をハッキング見つけた場合、あなたはForeignKeyのとの適切なデータベース・テーブルを使用してオフに おそらく方がよいでしょう。 の選択肢は、それがあまり変わらない静的なデータを意味します。

https://docs.djangoproject.com/en/1.3/ref/models/fields/#choices

+0

[OK]を感謝します。しかし、別のエラーを取得します。コードが更新されました。 – Kulbir

+0

私の(私たちの)間違い。私はタプルの代わりにタプルのタプルを追加していました。既にそれを修正した場合は、かっこを2つ取り除くだけで済みます。 – Chewie

+0

それは働いた。ありがとう – Kulbir

関連する問題