2016-09-06 129 views
-1

我正在嘗試獲取所選下拉菜單的值。我完成了以下操作,它返回一個'空'值。Django從DropDownlist傳遞到視圖

我認爲問題在這裏:newupload = request.POST('nameProjects'),但我不知道如何讓它工作。

upload.html

<form class="form" method="POST" action="upload"> 
<select id="ddProjects" name="nameProjects"> 
    {% for project in projects %} 
     <option value="{{ project.id }}">{{ project.name }}</option> 
    {% endfor %} 
</select> 
</form> 

views.py

def upload_new(request): 
    newupload = Upload() 
    projects = Project.objects.all() 
    newupload.project = request.POST['nameProjects'] 
    newupload.save() 
return render(request, 'upload.html', {'projects':projects})  
+0

爲什麼不使用Django表單? –

+0

但同時,你得到一個字符串值,然後試圖調用'保存'。你究竟想要保存什麼以及去哪裏? –

+0

第三,你使用的代碼會給你提到的行提供一個明確的錯誤。您應該*發佈*該錯誤,但也嘗試並理解並自行修復。 –

回答

0

在views.py,你應該使用request.POST [ 'nameProjects'],因爲request.POST會給出一個解釋。如果要將項目對象存儲在上傳模型中,我們需要給項目模型實例變量或可以給出ID。

 
def upload_new(request): 

    newupload = Upload() 

    projects = Project.objects.all() 

    newupload.project_id = request.POST['nameProjects'] 

    newupload.save() 

return render(request, 'upload.html', {'projects':projects})  
+0

謝謝,但是現在我得到這個錯誤:django.utils.datastructures.MultiValueDictKeyError:''nameProjects'「 –