Django - POST从select中获取选项

时间:2016-08-29 07:34:25

标签: python django

我有一个看起来像这样的html表单。

{% url 'myapp:myapp_submit' as submit %}

<form name='main' method="POST" action={{submit}}> 
{% csrf_token %}
<select class='form-control' size=10 id="test" name='test' multiple>
<option>Test</option>
</select>
<input type="submit"/>
</form>

和url.py

from . import views

    app_name = 'myapp'
    urlpatterns = [
        url(r'^$', views.myapp, name='myapp'),
        url(r'results/$', views.myapp_submit, name='myapp_submit')
    ]

和views.py

def myapp_submit(request):
    print request.POST

我唯一能回来的是

<QueryDict: {u'csrfmiddlewaretoken'...]}>

如何取回select标签中的选项?我会在这里使用模型/视图表单,但我正在用JS做一些非常疯狂的事情来不断更新可用的选项。

更新

我用过:

request.POST.getlist('test')

但它只返回['Test']如果我用鼠标突出显示它。我只想要select标签下的所有选项。离。

<select class='form-control' size=10 id="test" name='test' multiple>
<option>Test1</option>
<option>Test2</option>
<option>Test3</option>
<option>Test4</option>
</select>

###Not sure if it's still getlist method
>>request.POST.getlist('test')
['Test','Test2','Test3','Test4']

2 个答案:

答案 0 :(得分:1)

尝试更改views.py

def myapp_submit(request):
    request.POST.getlist('test[]')

答案 1 :(得分:0)

因为您说您使用 Js 做了一些奇怪的事情,您可以先检查浏览器中的POST请求以及您使用它发送的参数。