我试图将磁盘中的文件分配给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))