From 27421b13c2e6b64381cb02e5ed1dff1a28b2f72a Mon Sep 17 00:00:00 2001 From: Jannis Portmann Date: Mon, 10 Jul 2023 11:00:32 +0200 Subject: [PATCH 1/2] Fix image deletion bug --- pflaenzli/pflaenzli/models.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/pflaenzli/pflaenzli/models.py b/pflaenzli/pflaenzli/models.py index 1923aea..b9ba3df 100644 --- a/pflaenzli/pflaenzli/models.py +++ b/pflaenzli/pflaenzli/models.py @@ -52,9 +52,12 @@ def auto_delete_image_on_delete(sender, instance, **kwargs): @receiver(models.signals.pre_save, sender=Offer) def delete_old_image(sender, instance, **kwargs): - try: - old_image = sender.objects.get(pk=instance.pk).image - except sender.DoesNotExist: - return False + if instance.pk: + try: + old_image = sender.objects.get(pk=instance.pk).image + except sender.DoesNotExist: + return False - default_storage.delete(old_image.path) + new_image = instance.image + if old_image != new_image: + default_storage.delete(old_image.path) From dbb97b2b4c4e356d7ff329606c81de5ada8f2d71 Mon Sep 17 00:00:00 2001 From: Jannis Portmann Date: Mon, 10 Jul 2023 11:07:11 +0200 Subject: [PATCH 2/2] Keep old image if unchanged --- pflaenzli/pflaenzli/views.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pflaenzli/pflaenzli/views.py b/pflaenzli/pflaenzli/views.py index bb970ec..67db9da 100644 --- a/pflaenzli/pflaenzli/views.py +++ b/pflaenzli/pflaenzli/views.py @@ -87,7 +87,10 @@ def offer_edit(request, offer_id): form = CreateOfferForm(request.POST, request.FILES, instance=offer) if form.is_valid(): offer = form.save(commit=False) - offer.image.name = generate_unique_filename(form.cleaned_data['image'].name) + if 'image' in request.FILES: + offer.image.name = generate_unique_filename(form.cleaned_data['image'].name) + else: + offer.image = offer.image offer.user = request.user offer.save() messages.success(request, _("Offer updated successfully!"))