" ValueError:需要多于0个值才能解包"

时间:2016-08-02 12:29:40

标签: python django

我已经看过这里的问题,但似乎没有一个能帮助我。基本上我正在做的是调用getAllOpenChoices尝试返回单选按钮的值,这样当选择一个时它会保存。

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())

1 个答案:

答案 0 :(得分: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元组,你应该没问题。