关于多选领域

时间:2011-12-17 11:28:42

标签: python django

我在类别中有很多对象。像

 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解决方案。但是现在我得到了 TemplateSyntaxError at /users/profile/ Caught ValueError while rendering: need more than 1 value to unpack

1 个答案:

答案 0 :(得分:0)

CHOICES循环的每次迭代中,您都会向for重新分配(不附加)新值。它应该是这样的:

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

  

但如果你发现你自己选择了动态的选择,你就是   最好使用带有ForeignKey的正确数据库表。   选择适用于静态数据,如果有的话,变化不大。

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