我在类别中有很多对象。像
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
答案 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