Как извлечь название из загруженного файла пользователя Django

Я создаю веб-приложение django, в котором пользователь загружает файл (.docx), но прежде чем сохранить его, я хочу, чтобы функция открывала загруженный файл во время выполнения, получала заголовок этого файла и сохраняла его в поле title в модели. Мой файл models.py имеет следующий вид:

class FileUpload(models.Model):
    title = models.CharField(max_length=200)
    author = models.ForeignKey(User, on_delete=models.CASCADE, blank=True , null=True)
    file = models.FileField(upload_to='files')




    def get_absolute_url(self):
        return reverse('home')

Помните, что я хочу сделать это, когда пользователь загружает файл, но этот файл сохраняется с заголовком внутри этого .docx

От официального сайта django:

Вы можете использовать что-то вроде этого:

в forms.py

from django import forms

class UploadFileForm(forms.Form):
    file = forms.FileField()

в views.py

from django.http import HttpResponseRedirect
from django.shortcuts import render
from .forms import UploadFileForm
from .models import FileUpload

def upload_file(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            # the file is valid, we handle it
            f_u = FileUpload()
            f_u.file = request.FILES["file"]
            f_u.title = f_u.file.name
            f_u.author = request.user() # please ensure that you are logged in
            f_u.save()
            return HttpResponseRedirect('/success/url/')
    else:
        form = UploadFileForm()
    return render(request, 'upload.html', {'form': form})
Вернуться на верх