Dinario Asked:2020-02-10 12:52:29 +0000 UTC2020-02-10 12:52:29 +0000 UTC 2020-02-10 12:52:29 +0000 UTC 姜戈。在没有表单的情况下将文件上传到服务器 772 有一个模型: class UploadFile(models.Model): attach = models.FileField(upload_to='media/') 我正在生成一个 pdf 文档。输出是一个 类型的变量<class 'bytes'>。如何将生成的文件保存到模型中。 python 1 个回答 Voted Best Answer andreymal 2020-02-10T16:30:14Z2020-02-10T16:30:14Z 该方法FileField.save(这是一个字段类revsys.attach)接受任何类似文件的对象,因此您不能提前将其写入 FS,而只需使用BytesIO在内存中创建它: from io import BytesIO revsys = UploadFile() revsys.attach.save('file.pdf', BytesIO(pdf), save=True) 这适用于 Django 1.10,其中类文件对象自动包装在 Django 类中File。如果您使用的是 Django 1.9 或更早版本,它会抛出错误'_io.BytesIO' object has no attribute 'size',您必须在此处自行包装 BytesIO: from django.core.files import File # ... revsys.attach.save('file.pdf', File(BytesIO(pdf)), save=True)
该方法
FileField.save(这是一个字段类revsys.attach)接受任何类似文件的对象,因此您不能提前将其写入 FS,而只需使用BytesIO在内存中创建它:这适用于 Django 1.10,其中类文件对象自动包装在 Django 类中
File。如果您使用的是 Django 1.9 或更早版本,它会抛出错误'_io.BytesIO' object has no attribute 'size',您必须在此处自行包装 BytesIO: