python - Django 模板语法错误 : too many values to unpack

标签 python django django-templates

我正在使用 Django 表单,并且有一个选择字段。我认为问题可能在于选择是动态获取的,而现在只有一个值。我收到了 TemplateSyntaxError: too many values to unpack。其他一些帖子似乎说只有一个值是个问题,所以我调整了获取选项的函数,并对其进行了更改,以便在开始时将其添加到空白选项中,作为测试。然而,这引发了另一个错误:需要多于 0 个值才能解包

不太确定该怎么办,因为即使只有一个值,我仍然需要它执行。

表格:

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

最佳答案

choices 应该是二元组的可迭代对象。您只附加了一个字符串,这会由于字符串和元组的交互方式而导致困惑(如果您真的很在意,我会为您提供详细信息)。而是附加 2 元组。

关于python - Django 模板语法错误 : too many values to unpack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2080186/

相关文章:

Django:我应该启动一个单独的过程吗?

python - 属性错误: 'WSGIRequest' object has no attribute 'get' while making a get request

python - 如何使用 BeautifulSoup 从页面中抓取数据

python - boto3 在 SWF 上的 60 秒超时

python - 如何将字节作为字节字符串而不是整数写入csv文件?

python - 如何解决 gcloud app 部署网络连接错误?

python - BERT分类器中每个标签的预测概率

python - 如何使用相同的键将Python字典替换为QueryDict

django-templates - 上下文值/变量未在blocktrans模板标签内呈现

python - 使用 Django 预加载 html 电子邮件模板的智能方法