From 53c10644c1359119a948e7b59f378e6c89fb1acf Mon Sep 17 00:00:00 2001 From: Laurent Date: Tue, 7 Jan 2025 12:01:42 +0100 Subject: [PATCH] Erase data access objects when their parent is deleted --- sync/signals.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sync/signals.py b/sync/signals.py index 30430a3..ab45103 100644 --- a/sync/signals.py +++ b/sync/signals.py @@ -161,8 +161,10 @@ def detect_foreign_key_changes(sender, instance, device_id): print(f"Foreign key changed in {sender.__name__}: " f"{field.name} from {old_value} to {new_value}") -def delete_data_access_if_necessary(model_id): - DataAccess.objects.filter(model_id=model_id).delete() +@receiver(post_delete) +def delete_data_access_if_necessary(sender, instance, **kwargs): + if hasattr(instance, 'id'): + DataAccess.objects.filter(model_id=instance.id).delete() @receiver(m2m_changed, sender=DataAccess.shared_with.through) def handle_shared_with_changes(sender, instance, action, pk_set, **kwargs):