From 059dda049d432c6684172ad21de3724e6beecd1f Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 30 Jan 2024 09:48:37 -0800 Subject: [PATCH] 14947 fix for missing changelog if only update m2m --- netbox/extras/signals.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/netbox/extras/signals.py b/netbox/extras/signals.py index d1b20961a..a2d4f91ef 100644 --- a/netbox/extras/signals.py +++ b/netbox/extras/signals.py @@ -70,13 +70,21 @@ def handle_changed_object(sender, instance, **kwargs): # Record an ObjectChange if applicable if m2m_changed: - ObjectChange.objects.filter( + qs = ObjectChange.objects.filter( changed_object_type=ContentType.objects.get_for_model(instance), changed_object_id=instance.pk, request_id=request.id - ).update( - postchange_data=instance.to_objectchange(action).postchange_data ) + if not qs: + objectchange = instance.to_objectchange(action) + if objectchange and objectchange.has_changes: + objectchange.user = request.user + objectchange.request_id = request.id + objectchange.save() + else: + qs.update( + postchange_data=instance.to_objectchange(action).postchange_data + ) else: objectchange = instance.to_objectchange(action) if objectchange and objectchange.has_changes: