Не работает сигнал Django для удаления файла на aws s3
Я написал сигнал pre_save в Django для автоматического удаления старого profile_pic пользователя, если пользователь обновляет свой profile_pic. Вот мой код.
@receiver(pre_save, sender=User)
def delete_file_on_update(sender, instance, **kwargs):
"""
Delete the user's old profile pic file when user update the profile
and return the status True or False i.e where old pic is deleted or
not.
"""
# If instance is saving for first time in database, don't delete
# profile_pic file.
try:
old_file = sender.objects.get(pk=instance.pk).profile_pic
except sender.DoesNotExist:
return False
# If user has not updated profile pic, don't delete profile_pic
# file.
new_file = instance.profile_pic
if old_file == new_file:
return False
try:
old_file.delete(save=False)
return True
except Exception:
return False
Это работало нормально, когда хранилище было локальным, но когда я использовал хранилище AWS s3, оно больше не удаляет старый profile_pic. Также при отладке этот сигнал вызывается на каждом pre_save пользователя и old_file.delete(save=false) также выполняется, но файл не удаляется на AWS s3.