From fc21dc2b936ca963929ecd14c55a8cd2f7a52470 Mon Sep 17 00:00:00 2001 From: Laurent Date: Fri, 13 Jun 2025 17:35:21 +0200 Subject: [PATCH] improve perf + log --- sync/models/data_access.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/sync/models/data_access.py b/sync/models/data_access.py index 23425b3..a371eb7 100644 --- a/sync/models/data_access.py +++ b/sync/models/data_access.py @@ -1,8 +1,8 @@ from django.db import models from django.utils import timezone -# from django.apps import apps from django.core.exceptions import ObjectDoesNotExist from django.conf import settings +from django.db import transaction from ..registry import model_registry import uuid @@ -71,10 +71,13 @@ class DataAccess(BaseModel): obj = model_class.objects.get(id=self.model_id) related_instance = obj.related_instances() related_instance.append(obj) - for instance in related_instance: - if isinstance(instance, BaseModel): - instance.add_data_access_relation(self) - instance.save() + + with transaction.atomic(): + for instance in related_instance: + logger.info(f'adds DataAccess to {instance.__class__.__name__}') + if isinstance(instance, BaseModel): + instance.add_data_access_relation(self) + instance.save() except ObjectDoesNotExist: pass @@ -85,9 +88,11 @@ class DataAccess(BaseModel): obj = model_class.objects.get(id=self.model_id) related_instance = obj.related_instances() related_instance.append(obj) - for instance in related_instance: - if isinstance(instance, BaseModel): - instance.remove_data_access_relation(self) - instance.save() + + with transaction.atomic(): + for instance in related_instance: + if isinstance(instance, BaseModel): + instance.remove_data_access_relation(self) + instance.save() except ObjectDoesNotExist: pass