在Django中检索多个选择选项时出错

时间:2013-06-24 18:13:47

标签: html django django-forms django-templates django-views

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

Template.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" />

Views.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[]']

时代码失败了

1 个答案:

答案 0 :(得分:3)

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

应该是

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

[]替换为导致错误的()

以下是getlist的文档和用法。

另外,更改

return HttpResponse("Selected Packages:"+selected_packages)

return HttpResponse("Selected Packages: %s" % selected_packages)