【发布时间】:2021-08-11 05:00:41
【问题描述】:
我想从我的模型中提取文件字段并打开文件(文件为 .pdf 格式)。但我收到了这个错误:
预期的 str、字节或 os.PathLike 对象,而不是 QuerySet
我的 models.py 是:
class FileUpload(models.Model):
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')
我的 views.py 是:
class PostDetailView(DetailView):
context_object_name = "object_list"
template_name = "post_detail.html"
def get_object(self, *args,**kwargs):
request = self.request
pk = self.kwargs.get('pk')
instance = FileUpload.objects.filter(id = pk)
if instance is None:
raise Http404("File Does not EXIST")
else:
pdfFileObj = open(instance, 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
print(pdfReader.numPages)
pageObj = pdfReader.getPage(0)
print(pageObj.extractText())
pdfFileObj.close()
return instance
现在我没有使用任何模板。只想在我的终端内打印文件数据。意思是当我刷新页面时出现此错误。
【问题讨论】:
-
其实你使用的实例需要一个文件路径
-
只做 pdfFileObj = open(instance.file.path, 'rb')