2016-09-06 2 views
-1

ドロップダウンメニューの値を取得しようとしています。私は以下のことをして、それは 'null'の値を返しています。DjangoがDropDownlistからViewに渡す

私は問題がここにあると思う:newupload = request.POST( 'nameProjects')しかし、私はそれを働かせる方法についてはわからない。 views.pyで

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

一方、文字列の値を取得してから、その上で 'save'を呼び出そうとしています。まさに、あなたはどこに保存しようとしていますか? –

+0

第3に、あなたが使用しているコードは、あなたが言及した行に明確なエラーを与えていたでしょう。あなたは*そのエラーを投稿するだけでなく、自分で試して理解して修正するべきです。 –

答えて

0

request.POSTは辞書を与えるので、あなたはrequest.POST [ 'nameProjects']を使用する必要があります。アップロード・モデルにプロジェクト・オブジェクトを格納する場合は、プロジェクト・モデルのインスタンス変数を指定するか、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'" –

関連する問題