относительно поля с множественным выбором - PullRequest
0 голосов
/ 17 декабря 2011

У меня есть много объектов в категориях. как

 English
 etc
 French

Я пытался отобразить эти категории в multiplechocieField. Поэтому я использую следующий код. Но это просто отображать последний объект, как. French

Вот мои формы.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)

Не могли бы вы мне помочь? спасибо

ОБНОВЛЕНИЕ: я попробовал решение Чуви. Но сейчас я получаю TemplateSyntaxError at /users/profile/ Caught ValueError while rendering: need more than 1 value to unpack

1 Ответ

0 голосов
/ 17 декабря 2011

Вы переназначаете (не добавляете) новое значение на 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. Параметр choices предназначен для статических данных, которые практически не меняются.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...