フォームでアップロードされたファイルをviews.pyで取り出そうとすると
MultiValueDictKeyError 'file'
とゆうエラーが出ます。
request.FILES['file']がエラーを起こしています。
ファイルが取り出せていないようです。
何故でしょうか?
html
1<div> 2<form action="{%url 'databank1:upload_form' %}" method="POST" enctype=“multipart/form-data”> 3 <h2>タイトル</h2> 4 {% csrf_token %} 5 <input type="text" size=40 name="title" required="required"> 6 <h2>説明</h2> 7 {% csrf_token %} 8 <textarea name="contents" rows="10" cols="40" required="required"></textarea> 9 <h2>ファイル</h2> 10 {% csrf_token %} 11 <input type="file" name='file' required="required"> 12 <br> 13 <br> 14 <button type = "submit" class="button">アップロード</button> 15 <br> 16</form> 17</div> 18<br> 19<br>
views
1def upload_form(request): 2 if request.method == 'POST' and request.FILES['file']: 3 t = request.POST['title'] 4 c = request.POST['contents'] 5 f = request.FILES['file'] 6 u = request.user.id 7 new_file = filedata(title=t, contents=c, file=f, user_id=u) 8 new_file.save() 9 return redirect('databank1:top2') 10 else: 11 form = filr_upload() 12 context = { 13 'form':form 14 } 15 return render(request, 'databank1/upload_form.html', context)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。