Coverage for apis_core/apis_metainfo/signals.py: 100%
14 statements
« prev ^ index » next coverage.py v7.6.10, created at 2025-02-19 16:54 +0000
« prev ^ index » next coverage.py v7.6.10, created at 2025-02-19 16:54 +0000
1import logging
3from django.contrib.contenttypes.models import ContentType
4from django.db.models.signals import post_delete
5from django.dispatch import receiver
7from apis_core.apis_metainfo.models import Uri
9logger = logging.getLogger(__name__)
12@receiver(post_delete)
13def remove_stale_uris(sender, instance, *args, **kwargs):
14 content_type = ContentType.objects.get_for_model(instance)
15 if isinstance(instance.pk, int):
16 uris = Uri.objects.filter(content_type=content_type, object_id=instance.pk)
17 for uri in uris:
18 logger.info(
19 "Deleting uri %s as a result of deleting %s", repr(uri), repr(instance)
20 )
21 uri.delete()