Coverage for website/photos/signals.py: 57.14%
7 statements
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1from django.db.models.signals import pre_delete
3from utils.models.signals import suspendingreceiver
6@suspendingreceiver(
7 pre_delete, sender="photos.Photo", dispatch_uid="photos_photo_delete"
8)
9def pre_photo_delete(sender, instance, **kwargs):
10 """Remove main photo file and thumbnails on deletion."""
11 name = instance.file.name # First get the name, it is removed by the next line.
12 instance.file.delete() # Delete the file and its thumbnails.
14 # Clean up the source metadata, django-thumbnails does not do this.
15 instance.file.metadata_backend.delete_source(name)