From 110f963813400e70d1a626e4932827ec99008672 Mon Sep 17 00:00:00 2001 From: Arthur Date: Fri, 2 Feb 2024 08:51:16 -0800 Subject: [PATCH] 14947 DRY save logic --- netbox/extras/signals.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/netbox/extras/signals.py b/netbox/extras/signals.py index 27480d9cf..32d392ce4 100644 --- a/netbox/extras/signals.py +++ b/netbox/extras/signals.py @@ -70,6 +70,7 @@ def handle_changed_object(sender, instance, **kwargs): # Record an ObjectChange if applicable objectchange = instance.to_objectchange(action) + check_and_change = False if m2m_changed: qs = ObjectChange.objects.filter( changed_object_type=ContentType.objects.get_for_model(instance), @@ -77,19 +78,18 @@ def handle_changed_object(sender, instance, **kwargs): request_id=request.id ) if not qs: - if objectchange and objectchange.has_changes: - objectchange.user = request.user - objectchange.request_id = request.id - objectchange.save() + check_and_change = True else: qs.update( postchange_data=objectchange.postchange_data ) else: - if objectchange and objectchange.has_changes: - objectchange.user = request.user - objectchange.request_id = request.id - objectchange.save() + check_and_change = True + + if check_and_change and objectchange and objectchange.has_changes: + objectchange.user = request.user + objectchange.request_id = request.id + objectchange.save() # If this is an M2M change, update the previously queued webhook (from post_save) queue = events_queue.get()