我试图将一个文件从磁盘分配到文件字段,但出现以下错误:

AttributeError:""Str""对象没有""open""属性""

我的python代码:

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

还有我的模特.py

class FileSaver(models.Model):

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

    class Meta:
        managed=False

预先感谢您的帮助

推荐答案

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))

Django相关问答推荐

如何在Django查询集中查询多对多字段内是否存在实例

如何删除django请求中的重复项

有谁知道是否可以将您的 Django Heroku 应用程序放到 App Store/Google Play 上?

表单集中的每个表单验证

Pytest-django - 测试创建和传递所需的用户对象

使用 Python/Django 上传大文件

Django:想要将一个空字段显示为空白而不是显示无

Django 视图 - 首先从调用应用程序的目录加载模板

Django REST Framework - 将额外参数传递给操作

Django中的左外反向select_related?

如何缓存 Django Rest Framework API 调用?

relation "django_site" does not exist

使用 lambda 作为属性的默认值时,Django 1.7.1 Makemigrations 失败

Django 删除未使用的媒体文件

在 Django 中舍入小数点

Django 国际化语言代码

Django urls 直接到 html 模板

在 Django 中使用 Cython,是否有意义?

Django 1.7 - 如何 suppress (1_6.W001)某些元素单元测试可能无法按预期执行.?

Django - 保存新对象时如何获取 self.id?