From fb50dca369709638986e52d836cdec7cb3c9eccf Mon Sep 17 00:00:00 2001 From: Arthur Date: Thu, 21 Sep 2023 07:33:21 -0700 Subject: [PATCH 1/2] 13845 check original image is null in save --- netbox/dcim/models/devices.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/netbox/dcim/models/devices.py b/netbox/dcim/models/devices.py index 9cca724ce36..77bede58abd 100644 --- a/netbox/dcim/models/devices.py +++ b/netbox/dcim/models/devices.py @@ -332,9 +332,9 @@ def save(self, *args, **kwargs): ret = super().save(*args, **kwargs) # Delete any previously uploaded image files that are no longer in use - if self.front_image != self._original_front_image: + if self._original_front_image and self.front_image != self._original_front_image: self._original_front_image.delete(save=False) - if self.rear_image != self._original_rear_image: + if self._original_rear_image and self.rear_image != self._original_rear_image: self._original_rear_image.delete(save=False) return ret From 9117d53c3cde026837adce8fd2a300bc02e8ea66 Mon Sep 17 00:00:00 2001 From: Arthur Date: Thu, 21 Sep 2023 09:48:27 -0700 Subject: [PATCH 2/2] 13845 update delete image code --- netbox/dcim/models/devices.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/netbox/dcim/models/devices.py b/netbox/dcim/models/devices.py index 77bede58abd..c9ebf898d81 100644 --- a/netbox/dcim/models/devices.py +++ b/netbox/dcim/models/devices.py @@ -4,6 +4,7 @@ from functools import cached_property from django.core.exceptions import ValidationError +from django.core.files.storage import default_storage from django.core.validators import MaxValueValidator, MinValueValidator from django.db import models from django.db.models import F, ProtectedError @@ -333,9 +334,9 @@ def save(self, *args, **kwargs): # Delete any previously uploaded image files that are no longer in use if self._original_front_image and self.front_image != self._original_front_image: - self._original_front_image.delete(save=False) + default_storage.delete(self._original_front_image) if self._original_rear_image and self.rear_image != self._original_rear_image: - self._original_rear_image.delete(save=False) + default_storage.delete(self._original_rear_image) return ret