Django: 使用 < select multi > 和 POST

我在模板中使用了类似的东西

<select multiple="multiple"  name="services" id="services" size="5">
{% for service in services %}
<option value="{{service.id}}">{{service}}</option>
{% endfor %}
</select>

当我在 Firebug 或 Django 调试中查看 POST 数据时,我看到它只发送一个值。我是做错了什么,还是误解了什么?

50071 次浏览
request.POST.getlist('services')

仅供参考,我得用:

    list = request.POST.getlist("items[]")

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

小心!如果键不存在,QueryDect 的 getlist 方法返回一个空列表。它不引发异常。http://bit.ly/MdgrUH

你可以通过使用..。

request.POST.getlist('fiel_name')

Getlist (‘ services’)

对我有用。或者你可以将选择框名定义为一个列表