2

HTMLページに複数選択オプションのあるドロップダウンがあります。フォームの送信時に、そのドロップダウンでユーザーが選択したすべてのオプションを取得しようとしています。しかし、代わりに「TypeError:'instancemethod' object is not subscriptable」というエラーがスローされます。以下は私の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[]']

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 に答える