我的 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" />
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 有 'package[]': ['1','701']
。但是当我执行 request.POST.getlist['package[]']
最佳答案
request.POST.getlist['package[]']
应该是
request.POST.getlist('package[]')
将 []
替换为 ()
,这是导致错误的原因。
这里是 getlist
的文档和用法.
另外,更改
return HttpResponse("Selected Packages:"+selected_packages)
至
return HttpResponse("Selected Packages: %s" % selected_packages)
关于html - 在 Django 中检索多个选择选项时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17282162/