Есть модель с полем img ( фото пользователя)
class Profile(models.Model):
img = models.ImageField(upload_to=user_directory_path, verbose_name='Ваше фото')
# user image file will be uploaded to
def user_directory_path(instance, filename):
return 'images/{0}/{1}'.format(instance.name, filename)
Я хочу настроить удаление старого файла в поле img, когда пользователь загружает новую аватарку. Для этого сделал сигналы
# Delete old profile img file
@receiver(post_init, sender=Profile)
def backup_image_path(sender, instance, **kwargs):
if instance.img:
instance._current_imagen_file = instance.img
@receiver(post_save, sender=Profile)
def delete_old_image(sender, instance, **kwargs):
if hasattr(instance, '_current_imagen_file'):
if instance._current_imagen_file != instance.img.path:
instance._current_imagen_file.delete(save=False)
Если загружать новое фото, то старое удаляется, но при этом если я с админки не внося никаких изменений в профиль пользователя просто нажимаю на сохранить, то файл так же удаляется.
Насколько я помню у меня не было такой проблемы когда я загружал в корень папки img, появилось когда добавил def user_directory_path
Что не так с кодом?