From d97888c887a5e48073497dcd09cbc2a156f6c9d4 Mon Sep 17 00:00:00 2001 From: Laurent Date: Fri, 13 Jun 2025 10:45:24 +0200 Subject: [PATCH] put DataAccess auto-delete in the pre_delete BaseModel signal --- sync/models/data_access.py | 2 +- sync/signals.py | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/sync/models/data_access.py b/sync/models/data_access.py index e0455ec..23425b3 100644 --- a/sync/models/data_access.py +++ b/sync/models/data_access.py @@ -7,7 +7,7 @@ from django.conf import settings from ..registry import model_registry import uuid -from . import ModelLog, SideStoreModel, BaseModel +from . import ModelLog, BaseModel import logging logger = logging.getLogger(__name__) diff --git a/sync/signals.py b/sync/signals.py index 211b416..76cc7c5 100644 --- a/sync/signals.py +++ b/sync/signals.py @@ -39,7 +39,9 @@ def presave_handler(sender, instance, **kwargs): if signal == pre_save: detect_foreign_key_changes_for_shared_instances(sender, instance) sig_type = 'pre_save' - else: + elif signal == pre_delete: + if hasattr(instance, 'id'): + DataAccess.objects.filter(model_id=instance.id).delete() sig_type = 'pre_delete' # logger.info(f'* {sig_type} : {instance.__class__.__name__} > impacted users = {users}') @@ -274,12 +276,12 @@ def process_foreign_key_changes(sender, instance, **kwargs): ### Data Access -@receiver(post_delete) -def delete_data_access_if_necessary(sender, instance, **kwargs): - if not isinstance(instance, BaseModel): - return - if hasattr(instance, 'id'): - DataAccess.objects.filter(model_id=instance.id).delete() +# @receiver(post_delete) +# def delete_data_access_if_necessary(sender, instance, **kwargs): +# if not isinstance(instance, BaseModel): +# return +# 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):