使用“ImageKit”对 django 中的关闭文件进行 I/O 操作

MDe*_*ker 3 django io django-imagekit

在我的 django 项目中,我使用 ImageKit 来调整我的个人资料图像的大小。

我有一个包含这些字段的模型:

pasfoto = models.ImageField(upload_to='images/', blank=True)
pasfoto_thumbnail = ImageSpecField(source='pasfoto',
                                      processors=[ResizeToFill(150, 200)],
                                      format='JPEG',
                                      options={'quality': 60})
Run Code Online (Sandbox Code Playgroud)

ImageSpecField 是从 Imagekit 导入的。

我通过 Django-storages 将图像保存在 amazon-S3 上

当我通过 UpdateView 呈现的模板(编辑表单)上传图像时,它会在成功后显示详细模板。此模板中使用了 pasfoto_thumbnail,它是通过 Django 中基于类的 DetailView 呈现的。

在这种情况下,我看到错误“对已关闭文件进行 I/O 操作”。但浏览器刷新后显示正确的图像。发生了什么事以及如何解决这个问题?


此错误的 Django 调试页面/信息

小智 5

我最近遇到了同样的问题,它阻止我升级django-storages到最新版本。

我终于将问题追溯到这个旧的 django-storages 问题

在该线程中,他们提到了django s3 storages。迁移到该库似乎可以修复它。