Django TemplateSyntaxError:要解压缩的值太多

时间:2010-01-17 06:29:48

标签: python django django-templates

我正在使用django表单,我有一个选择字段。我认为问题可能是选择是动态获取的,而现在只有一个值。我得到了TemplateSyntaxError: too many values to unpack。一些其他帖子似乎说只有一个值是一个问题,所以我调整了我的函数来获取选项,并改变它,所以它在开始时添加到空白选项,就像测试一样。然而,这又带来了另一个错误:need more than 0 values to unpack

不确定该如何处理,因为即使只有一个值,我仍然需要它仍然执行。

表格:

class UploadFileForm(forms.Form):
    category = forms.ChoiceField(get_category_list())
    file = forms.FileField()

类别获取功能:

def get_category_list():
    cats = [(), ()]
    for i in os.listdir(settings.MEDIA_ROOT + '/forms'):
        cats.append(i)
    return cats

模板部分:

<div id='addformdialog' title='Add Form'>
    {{ form.as_p }}
</div>

查看:

def fm(request):
    if request.session['SecurityLevel'] != 2:
        return HttpResponse('Access Denied!')

    if request.method == 'POST':
        form = UpoadFileForm(request.POST, request.FILES)
        if form.is_valid():
            destination = open(settings.MEDIA_ROOT + "/forms/" + request.POST['category'] + "/" + request.FILES['file'].name, 'wb+')
            for chunk in request.FILES['file'].chunks():
                destination.write(chunk)
            destination.close()
            form = UploadFileForm()
            return render_to_response('admin/fm.html', {'categories':cats, 'form':form, 'uploadsuccess':True})
    else:
        cats = get_category_list()
        form = UploadFileForm()
        return render_to_response('admin/fm.html', {'categories':cats, 'form':form})

1 个答案:

答案 0 :(得分:6)

choices应该是2元组的可迭代。你只附加一个字符串,由于字符串和元组如何交互而导致混乱(如果你真的在意,我会给你详细说明)。改为追加2元组。