我的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[]']
答案 0 :(得分:3)
request.POST.getlist['package[]']
应该是
request.POST.getlist('package[]')
将[]
替换为导致错误的()
。
以下是getlist
的文档和用法。
另外,更改
return HttpResponse("Selected Packages:"+selected_packages)
到
return HttpResponse("Selected Packages: %s" % selected_packages)