如何在Django中将本地文件分配给FileField?

我试图将磁盘中的文件分配给FileField,但是出现此错误:

AttributeError:’str’对象没有属性’open’

我的python代码:

pdfImage = FileSaver()

pdfImage.myfile.save('new', open('mytest.pdf').read())

和我的models.py

class FileSaver(models.Model):

myfile = models.FileField(upload_to="files/")

class Meta:

managed=False

预先感谢您的帮助

回答:

Django使用它自己的文件类型(具有明显增强的功能)。无论如何,Django的文件类型就像装饰器一样工作,因此你可以简单地将其包装在现有文件对象周围,以满足Django API的需求。

from django.core.files import File

local_file = open('mytest.pdf')

djangofile = File(local_file)

pdfImage.myfile.save('new', djangofile)

local_file.close()

当然,你可以通过编写以下命令(少一行)来动态修饰文件:

pdfImage.myfile.save('new', File(local_file))

以上是 如何在Django中将本地文件分配给FileField? 的全部内容, 来源链接: utcz.com/qa/404657.html

回到顶部