Python Django ImageKit:如何重命名上载的图像?

Python Django ImageKit:如何重命名上载的图像?,python,django,image,python-2.7,image-processing,Python,Django,Image,Python 2.7,Image Processing,我的用户模型中有一个photo字段,我想知道如何将上传的图像重命名为用户ID 这是我现在拥有的,它将保留图像的原始文件名: photo = ProcessedImageField(upload_to='form_photos', processors=[Adjust(color=0),], format='JPEG', options={'quality': 60}, null=True) 谢谢 您可以将upload\u更改为va

我的用户模型中有一个photo字段,我想知道如何将上传的图像重命名为用户ID

这是我现在拥有的,它将保留图像的原始文件名:

photo = ProcessedImageField(upload_to='form_photos',
        processors=[Adjust(color=0),],
        format='JPEG',
        options={'quality': 60},
        null=True)

谢谢

您可以将upload\u更改为value,以实现如下功能

def upload_to_id_image(instance, filename):
    extension = splitext(filename)[1].lower()
    salt, hashed = generate_sha1(instance.id)
    path = 'profiles/%(id)s_%(date_now)s_' % {
                                         'id': instance.user.id,
                                         'date_now': get_datetime_now().date().strftime("%Y%m%d")}
    return '%(path)s%(hash)s%(extension)s' % {'path': path,
                                          'hash': hashed[:16],
                                          'extension': extension}
然后,你应该像这样修改你的代码

photo = ProcessedImageField(upload_to=upload_to_id_image,
当然,您可以删除哈希代码。
但是为了文件安全,使用哈希文件名更好。

您的意思是在保存图像时将文件名更改为“userid”。jpeg?