2016-08-02 2 views
1

Я рассмотрел вопросы здесь, и ни один из них, похоже, не помог мне. По существу, я делаю вызов getAllOpenChoices, чтобы попытаться вернуть значение кнопки «Радио», поэтому при выборе одного из них он сохраняет.«ValueError: требуется больше 0 значений для распаковки»

forms.py

def getAllOpenChoices(): 
    listOpenChoice = [('All', 'All'), ('No One', 'No One'), ('Test','Test')] 
    all_choices = Requisition.objects.distinct() 
    for choices in all_choices: 
      temp = (Requisition.objects.filter(open_to=choices)) 
      listOpenChoice.append(temp) 
    return tuple(listOpenChoice) 

Это ошибка, я получаю:

ValueError: need more than 0 values to unpack 

getAllOpenChoices это называют:

self.fields['open_to'] = forms.ChoiceField(choices = getAllOpenChoices, widget = forms.RadioSelect()) 

ответ

0

Выбор должен быть список 2-кортежи, как и ваше начальное значение listOpenChoice

listOpenChoice = [('All', 'All'), ('No One', 'No One'), ('Test','Test')]` 

Если вы расширите этот список, вы должны добавить только 2-х кортежей. Например:

listOpenChoice.append(('new', 'New')) 

Однако вы добавляете запросы, например. Requisition.objects.filter(open_to=choices). Это не имеет смысла. Один из ваших запросов является пустым, поэтому вы получаете нуль в сообщении об ошибке «требуется больше, чем 0 значений для распаковки».

Непонятно, что вы пытаетесь добавить в список, поэтому я не могу сказать вам, как исправить ваш код. Пока вы добавляете только 2-х кортежей, вы должны быть в порядке.

+0

Отлично! Спасибо! –

Смежные вопросы