Rob*_*rne 9 django django-models
我有一个模型有两个图像字段,一个源图像和一个缩略图.
当我更新新的源图像时,保存它,然后尝试读取源图像以将其裁剪/缩放到缩略图我从PIL获得"关闭文件的I/O操作"错误.
如果我更新源图像,不要保存源图像,然后尝试读取源图像进行裁剪/缩放,我从PIL得到"试图从已关闭文件中读取"错误.
在这两种情况下,源图像实际上都已保存,并在以后的请求/响应循环中可用.
如果我没有在单个请求/响应循环中裁剪/缩放,而是在一个页面上上传,然后在另一个页面中裁剪/缩放,这一切都正常.
这似乎是一个缓存的缓冲区,可以通过PIL或Django文件存储重复使用.有关如何在保存后使ImageField可读的任何想法?
更多信息... ImageField在保存后显然正在关闭基础文件.有没有办法强制刷新ImageField?我看到一些人使用seek(0),但在这种情况下不起作用.
Rob*_*rne 17
我已经跟踪并提交给django项目的ImageField中存在一个错误.
如果您有一个带有ImageField?的简单模型,则以下代码将因"关闭文件上的I/O操作"而失败:
instance = MyClass.objects.get(...)
w = instance.image.width
h = instance.image.height
original = Image.open(instance.image)
Run Code Online (Sandbox Code Playgroud)
解决方法是重新打开文件:
instance = MyClass.objects.get(...)
w = instance.image.width
h = instance.image.height
instance.image.open()
original = Image.open(instance.image)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5082 次 |
| 最近记录: |