2016-09-06 126 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'“ –