Использование pikepdf на объекте документа django

У меня есть проект django, в котором пользователь загружает банковскую выписку в формате pdf, после чего я хочу разобрать ее с помощью pikepdf.

Проблема:

Стандартным вариантом использования pikepdf является выполнение pikepdf.open(_path_) для открытия файла в некотором месте, но в моем случае файл загружается клиентом, и поэтому он возвращается в request.POST как объект файла django.core.files.uploadedfile.InMemoryUploadedFile.

Поскольку он не хранится по некоторому пути, я, очевидно, не могу вызвать pikepdf.open(_path_), что является проблемой, поскольку мой файл воспринимается как django.core.files.uploadedfile.InMemoryUploadedFile, а не как pikepdf._qpdf.Pdf

Вопрос:

Как я могу "преобразовать" django.core.files.uploadedfile.InMemoryUploadedFile в pikepdf._qpdf.Pdf во время выполнения, чтобы я мог использовать другие методы pikepdf?

Или есть другой/лучший способ сделать это вообще?

Мой код:

вот мой код django, если это поможет:

models.py

from django.db import models

# Create your models here.

class Document(models.Model):
    docfile = models.FileField(upload_to='documents/%Y/%m/%d')

forms.py

from django import forms

class DocumentForm(forms.Form):
    docfile = forms.FileField(
        label='Select a file',
        help_text='max. 42 megabytes'
    )

views.py

def uploadbs(request):
    if request.method == 'POST':
        form = forms.DocumentForm(request.POST, request.FILES)
        newdoc = Document(docfile = request.FILES['docfile'])
        <<< convert newdoc to pikepdf object >>>
Вернуться на верх