📚

DjangoのModelFormを使用してアップロードしたファイルのパスを取得する

2023/06/20に公開

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