2

我的 html 页面中有一个带有多个选择选项的下拉菜单。在提交表单时,我试图在该下拉列表中捕获用户选择的所有选项。但它给我一个错误,而不是“TypeError:'instancemethod'对象不可下标”。以下是我的 template.html 和 views.py

模板.html:

Select packages:
<form name=automationForm action="/vsawebauto/automation/results/" method="post">
//some form elements
<select id="package" name="package[]" multiple="multiple" size="5">
{% for i in ida.package_set.all %}
<option value="{{ i.pkg_id }}">{{ i.display_name }}</option>
{% endfor %}
</select>
//some form elements
<input type="submit" id="submit" value="Submit Job" />

视图.py:

def results(request):
    //some code
    selected_packages = request.POST.getlist['package[]']
    //some code

    return HttpResponse("Selected Packages:"+selected_packages)

注意:我也调试了代码。request.POST 对象有多个选定的值。例如。当用户选择 1 和 701 包时,request.POST has 'package[]': ['1','701']. 但是当我这样做时代码失败了request.POST.getlist['package[]']

4

1 回答 1

4
request.POST.getlist['package[]']

应该

request.POST.getlist('package[]')

替换[]()导致错误的原因。

这是getlist.

还有,改变

return HttpResponse("Selected Packages:"+selected_packages)

return HttpResponse("Selected Packages: %s" % selected_packages)
于 2013-06-24T18:15:28.123 回答