Skip to content

Commit c47d526

Browse files
authored
the changes will solve error from local development (#2457)
1 parent 7f5a771 commit c47d526

File tree

1 file changed

+50
-30
lines changed

1 file changed

+50
-30
lines changed

website/models.py

Lines changed: 50 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -346,43 +346,63 @@ class Meta:
346346
ordering = ["-created"]
347347

348348

349-
@receiver(post_delete, sender=Issue)
350-
def delete_image_on_issue_delete(sender, instance, **kwargs):
351-
if instance.screenshot:
352-
client = storage.Client()
353-
bucket = client.bucket(settings.GS_BUCKET_NAME)
354-
blob_name = instance.screenshot.name
355-
blob = bucket.blob(blob_name)
356-
try:
357-
logger.info(f"Attempting to delete image from Google Cloud Storage: {blob_name}")
358-
blob.delete()
359-
logger.info(f"Successfully deleted image from Google Cloud Storage: {blob_name}")
360-
except NotFound:
361-
logger.warning(f"File not found in Google Cloud Storage: {blob_name}")
362-
except Exception as e:
363-
logger.error(f"Error deleting image from Google Cloud Storage: {blob_name} - {str(e)}")
349+
if "storages.backends.gcloud.GoogleCloudStorage" in settings.DEFAULT_FILE_STORAGE:
350+
351+
@receiver(post_delete, sender=Issue)
352+
def delete_image_on_issue_delete(sender, instance, **kwargs):
353+
if instance.screenshot:
354+
client = storage.Client()
355+
bucket = client.bucket(settings.GS_BUCKET_NAME)
356+
blob_name = instance.screenshot.name
357+
blob = bucket.blob(blob_name)
358+
try:
359+
logger.info(f"Attempting to delete image from Google Cloud Storage: {blob_name}")
360+
blob.delete()
361+
logger.info(f"Successfully deleted image from Google Cloud Storage: {blob_name}")
362+
except NotFound:
363+
logger.warning(f"File not found in Google Cloud Storage: {blob_name}")
364+
except Exception as e:
365+
logger.error(
366+
f"Error deleting image from Google Cloud Storage: {blob_name} - {str(e)}"
367+
)
368+
else:
369+
370+
@receiver(post_delete, sender=Issue)
371+
def delete_image_on_issue_delete(sender, instance, **kwargs):
372+
if instance.screenshot:
373+
instance.screenshot.delete(save=False)
364374

365375

366376
class IssueScreenshot(models.Model):
367377
image = models.ImageField(upload_to="screenshots", validators=[validate_image])
368378
issue = models.ForeignKey(Issue, on_delete=models.CASCADE, related_name="screenshots")
369379

370380

371-
@receiver(post_delete, sender=IssueScreenshot)
372-
def delete_image_on_post_delete(sender, instance, **kwargs):
373-
if instance.image:
374-
client = storage.Client()
375-
bucket = client.bucket(settings.GS_BUCKET_NAME)
376-
blob_name = instance.image.name
377-
blob = bucket.blob(blob_name)
378-
try:
379-
logger.info(f"Attempting to delete image from Google Cloud Storage: {blob_name}")
380-
blob.delete()
381-
logger.info(f"Successfully deleted image from Google Cloud Storage: {blob_name}")
382-
except NotFound:
383-
logger.warning(f"File not found in Google Cloud Storage: {blob_name}")
384-
except Exception as e:
385-
logger.error(f"Error deleting image from Google Cloud Storage: {blob_name} - {str(e)}")
381+
if "storages.backends.gcloud.GoogleCloudStorage" in settings.DEFAULT_FILE_STORAGE:
382+
383+
@receiver(post_delete, sender=IssueScreenshot)
384+
def delete_image_on_post_delete(sender, instance, **kwargs):
385+
if instance.image:
386+
client = storage.Client()
387+
bucket = client.bucket(settings.GS_BUCKET_NAME)
388+
blob_name = instance.image.name
389+
blob = bucket.blob(blob_name)
390+
try:
391+
logger.info(f"Attempting to delete image from Google Cloud Storage: {blob_name}")
392+
blob.delete()
393+
logger.info(f"Successfully deleted image from Google Cloud Storage: {blob_name}")
394+
except NotFound:
395+
logger.warning(f"File not found in Google Cloud Storage: {blob_name}")
396+
except Exception as e:
397+
logger.error(
398+
f"Error deleting image from Google Cloud Storage: {blob_name} - {str(e)}"
399+
)
400+
else:
401+
402+
@receiver(post_delete, sender=IssueScreenshot)
403+
def delete_image_on_post_delete(sender, instance, **kwargs):
404+
if instance.image:
405+
instance.image.delete(save=False)
386406

387407

388408
@receiver(post_save, sender=Issue)

0 commit comments

Comments
 (0)