2016-08-02 3 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)。これは意味をなさない。クエリーセットの1つが空です。そのため、「解凍するには0以上の値が必要です」というエラーメッセージにゼロが表示されます。

リストに追加しようとしていることがわからないので、コードを修正する方法を教えてもらえません。あなたが2タプルだけを追加する限り、あなたは大丈夫でしょう。

+0

完璧!ありがとうございました! –

関連する問題