打开 Django 文件字段的对象时出现 TypeError
TypeError when open object of django filefield
我想制作一个名为'count'的按钮来统计上传的pdf文件的页数。但是,存在 TypeError invalid file:
我如何改进我的代码来解决这个错误...?
PS。我是使用 django 1.10 进行编码的新手,只想制作一些小工具让我的生活更轻松 :)
提前致谢
我的模特
from django.db import models
from PyPDF2 import PdfFileReader
class PdfFile(models.Model):
file = models.FileField(upload_to='document/')
num_of_pages = models.IntegerField(null=True)
def page_count(self):
pdf = PdfFileReader(open(self.file, 'rb'))
self.num_of_pages = pdf.getNumPages()
self.save()
我的观点
def count(request, pk):
pdf = get_object_or_404(PdfFile, pk=pk)
pdf.page_count()
return redirect('img_preview', pk=pk)
您不能将文件字段值直接传递给 open
。然而,正如 the documentation 所示,该对象本身有一个 open
方法:
pdf = PdfFileReader(self.file.open())
由于 class 还定义了 read
和 __iter__
的方式,您实际上可以直接传递该字段:
pdf = PdfFileReader(self.file)
我想制作一个名为'count'的按钮来统计上传的pdf文件的页数。但是,存在 TypeError invalid file:
我如何改进我的代码来解决这个错误...?
PS。我是使用 django 1.10 进行编码的新手,只想制作一些小工具让我的生活更轻松 :)
提前致谢
我的模特
from django.db import models
from PyPDF2 import PdfFileReader
class PdfFile(models.Model):
file = models.FileField(upload_to='document/')
num_of_pages = models.IntegerField(null=True)
def page_count(self):
pdf = PdfFileReader(open(self.file, 'rb'))
self.num_of_pages = pdf.getNumPages()
self.save()
我的观点
def count(request, pk):
pdf = get_object_or_404(PdfFile, pk=pk)
pdf.page_count()
return redirect('img_preview', pk=pk)
您不能将文件字段值直接传递给 open
。然而,正如 the documentation 所示,该对象本身有一个 open
方法:
pdf = PdfFileReader(self.file.open())
由于 class 还定义了 read
和 __iter__
的方式,您实际上可以直接传递该字段:
pdf = PdfFileReader(self.file)