Django:使用<select multiple>和POST

neo*_*ice 60 python django http

我在模板中使用了这样的东西

<select multiple="multiple"  name="services" id="services" size="5">
    {% for service in services %}
        <option value="{{service.id}}">{{service}}</option>
    {% endfor %}
</select>
Run Code Online (Sandbox Code Playgroud)

当我在Firebug或Django调试中查看POST数据时,我发现它只发送一个值.我做错了什么或误解了一个概念?

Ign*_*ams 140

request.POST.getlist('services')
Run Code Online (Sandbox Code Playgroud)

  • 你不需要[].这是一个仅限于PHP的约定. (5认同)
  • 值得一提的是,这也适用于GET数据。`request.GET.getlist('services')` (2认同)

ele*_*ick 9

仅供参考,我不得不使用:

    list = request.POST.getlist("items[]")
Run Code Online (Sandbox Code Playgroud)

因为省略[]导致返回空白列表而不是正确的值.我正在使用jQuery来获取多个select元素的值,而jQuery似乎正在添加[]

  • 我必须使用 [] 之间没有任何空格 (2认同)