📚
DjangoのModelFormを使用してアップロードしたファイルのパスを取得する
DjangoのModelFormを使用してアップロードしたファイルのパスを取得する機会がありましたのでメモします。
以下のモデルを想定します。
models.py
class Document(models.Model):
file = models.FileField(upload_to='documents/')
上記に対して、以下のようなviewsで、パスにアクセスすることができました。
views.py
from django.shortcuts import render, redirect
from .forms import DocumentForm
def upload_file(request):
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
document = form.save()
file_url = document.file.url # Correct field name used here
full_path = document.file.path # Correct field name used here
return redirect('some-view')
else:
form = DocumentForm()
return render(request, 'upload.html', {'form': form})
基本的なことかと思いますが、参考になりましたら幸いです。
Discussion