Django的ImageField
从磁盘读取图像标题以确定图像的宽度和高度,即使我的模型有专用字段来保存它们,由width_field
和height_field
指定。我有大约20,000,000张图片,所以这对我的回复时间没有帮助。
查看源代码,似乎Django读取图像一次(无论width_field
和height_field
的值)并将计算出的大小存储为ImageFile
上的属性,每次请求后都会被删除。实际上,每当我在模板中获取图像的大小时,我都会读取图像标题。
只有在使用ImageField
(来自ImageFieldFile
)的属性访问图像的宽度和高度时才会触摸磁盘,因此,如果我只是直接从我的模型访问宽度和高度字段,图像不是从磁盘读取的。
这种行为背后的原因是什么?每当我使用ImageField
公开的属性访问图像的宽度和高度时,有没有办法阻止ImageField
从磁盘读取图像信息?