2016-08-02 9 views
1

Ich habe mir die Fragen hier angesehen und keiner von ihnen scheint mir zu helfen. Im Wesentlichen rufe ich getAllOpenChoices an, um zu versuchen, einen Wert des Radioknopfes zurückzugeben, also wenn man gewählt wird, speichert es."ValueError: brauche mehr als 0 Werte zum Entpacken"

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) 

Dieser Fehler, die ich erhalte ist:

ValueError: need more than 0 values to unpack 

getAllOpenChoices ist genannt zu werden:

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

Antwort

0

Die Auswahl einer Liste sein sollte 2-Tupel, wie Ihr Anfangswert listOpenChoice

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

Wenn Sie diese Liste erweitern, sollten Sie nur 2-Tupel hinzufügen. Zum Beispiel:

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

Sie fügen jedoch Anfragesätze an, z. Requisition.objects.filter(open_to=choices). Das ergibt keinen Sinn. Einer Ihrer Suchanfragen ist leer, weshalb Sie in der Fehlermeldung "mehr als 0 zu entpackende Werte" die Null eingeben müssen.

Es ist mir nicht klar, was Sie an die Liste anhängen möchten, damit ich Ihnen nicht sagen kann, wie Sie Ihren Code reparieren können. Solange Sie nur 2-Tupel anhängen, sollten Sie in Ordnung sein.

+0

Perfekt! Vielen Dank! –

Verwandte Themen