Использование 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 >>>