我想从Django中用户上传的图像中读取EXIF信息,然后使用该EXIF信息生成文件名以将图像存储为(在animal_img/alfred-0012
目录下),例如:
原始文件名:P1110438.JPG
拍摄日期:2012-07-22
名称:Alfred
目标文件名:alfred-20120722.jpg
不知何故,这种情况一直持续到最近,但是Django一直在抱怨找不到使用[Errno 2] No such file or directory: 'P1110438.JPG'
的文件
我在模型中一直使用的用于重命名图像的代码:
def img_namer(instance, filename):
path = 'animal_img/%s-%04d/' % (instance.name.lower(), instance.id)
name = instance.name.lower() + Image.open(filename)._getexif()[36867] + ".jpg"
return os.path.join(path, name)
image = models.ImageField(
default=None,
blank=True,
upload_to=img_namer,
)
我可以看到在正确保存ImageFile之前尝试打开它的局限性,但是就像我说的那样,它一直在起作用,所以也许我做错了什么?任何帮助表示赞赏!
答案 0 :(得分:0)
我在尝试解决类似问题时发现了您的问题...
通过将Image.open(filename)
替换为Image.open(instance.image)
对我有用。