打开django filefield对象时出现TypeError



我想制作一个名为'count'的按钮来计算上传的pdf文件的页数。但是,存在TypeError无效文件:

我如何改进我的代码来解决这个错误…?

p。我是使用django 1.10编码的新手,只是想做一些小工具让我的生活更轻松:)

Thanks in advance

我的模型
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。然而,正如文档所示,该对象本身有一个open方法:

pdf = PdfFileReader(self.file.open())

因为这个类也定义了read__iter__,你实际上可以直接传递这个字段:

pdf = PdfFileReader(self.file)

相关内容

  • 没有找到相关文章

最新更新