2009-03-06 45 views
45

我使用這樣的事情在我的模板Django的:使用<選擇多個>和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數據,我看到的只是發送一個值。我做錯了什麼或誤解了一個概念?

+0

提供給模板的服務的價值是什麼? – 2009-03-06 11:45:43

+0

您的意思是: services = Service.objects.all() return render_to_response('add.html',{'services':services}) ?? (我根本無法獲得這些評論的格式。) – neoice 2009-03-06 11:54:24

+3

@附註:提示:不要在評論中爲您的問題添加細節。編輯您的問題以添加事實。問題總是格式正確。而且這個問題應該沒有評論意見就可以獨立。 – 2009-03-06 12:30:32

回答

110
request.POST.getlist('services') 
8

僅供參考,我不得不使用:

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

,因爲省略了[]造成返回而不是正確的值的空白列表。我使用jQuery來獲取多選元素的值,而jQuery似乎正在添加[]

1

小心! QueryDict中的getlist方法返回一個空列表,如果該鍵不存在。它不會拋出異常。 http://bit.ly/MdgrUH

0

你可以通過使用獲得預期列表...

request.POST.getlist('fiel_name') 
0

request.POST.getlist( '服務')

爲我工作。或者您可以將選擇框名稱定義爲列表

相關問題