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

2024-09-27 09:24:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将磁盘中的文件分配给文件字段,但出现以下错误:

AttributeError:“str”对象没有“open”属性

我的python代码:

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

还有我的模特

class FileSaver(models.Model):

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

    class Meta:
        managed=False

提前谢谢你的帮助


Tags: 文件对象代码属性modelssave错误open
1条回答
网友
1楼 · 发布于 2024-09-27 09:24:36

Django使用自己的file type(具有显著增强的功能)。无论如何,Django的文件类型的工作方式类似于decorator,因此您可以简单地将其包装在现有的文件对象上,以满足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))

相关问题 更多 >

    热门问题