2015-04-03 4 views
0

Я хочу иметь форму флажка, в которой можно проверить несколько параметров. Для этого у меня есть:Django forms: MultipleChoiceField Ошибка слишком много значений для распаковки

forms.py

class ServiceForm(forms.Form): 
services = ServiceList.objects.all().values('service_name') 

choice = [] 
for x in services: 
    choice.extend(x.values()) 

service_id = forms.MultipleChoiceField(required=True, 
             widget=forms.CheckboxSelectMultiple, choices=choice) 

views.py

def save_data_into_temp(request): 

if request.method == 'POST': 
    detail_form = ServiceForm(data=request.POST) 
    if detail_form.is_valid(): 

     detail = detail_form.save(commit=False) 

     detail.save() 

, но это дает мне ошибку

too many values to unpack 

отслеживающий: ошибка в строке 58

58 {{ service_form }} 
+0

Какая линия выдает ошибку? –

ответ

1

Не знаете, в какую строку вы получите ошибку, не имея полной трассировки. Если вы печатаете choice .. что вы получаете? Я бы сгенерировал choice следующим образом:

service_choice = tuple(
    [(choice, choice) for choice in 
     ServiceList.objects.values_list('service_name', flat=True)]) 
Смежные вопросы