Edited at

Djangoでファイルアップロード

More than 1 year has passed since last update.

Djangoでアプリケーションを作ってた時困った話。

Formを使ってファイルをアップロードしたいのにできなった。

修正前


views.py

def InfoView(request):

form= Form(request.POST or None)
if form.is_valid():
form.save()
return redirect("/complete")
return render(request, 'form.html', {'form': form} )

ファイルを選択してアップロードしてもファイルだけがアップロードされない。(他のテキストなどはDBに保存される)

しらべたらFormの引数に

request.FILES

が必要だったらしい。

修正後


views.py

def InfoView(request):

form= Form(request.POST or None, request.FILES)
if form.is_valid():
form.save()
return redirect("/complete")
return render(request, 'form.html', {'form': form} )

ファイルも一緒に保存されるようになった。