From b5bc0bad3858d51912bd466cc4d4e897811cf952 Mon Sep 17 00:00:00 2001 From: Alexander Haase Date: Tue, 18 Feb 2025 21:48:12 +0100 Subject: [PATCH] Cover multitable inheritance in serialization During serialization, custom fields may be available to a model due to multi-table inheritance, but might not be available in serialized data because only direct fields of the model are covered. Now this attribute is only used if available in serialized data. Models using multi-table inheritance must modify their serialize_object() method to cover parent serialization. --- netbox/utilities/serialization.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/utilities/serialization.py b/netbox/utilities/serialization.py index af1169e97..f402a30eb 100644 --- a/netbox/utilities/serialization.py +++ b/netbox/utilities/serialization.py @@ -29,7 +29,7 @@ def serialize_object(obj, resolve_tags=True, extra=None, exclude=None): exclude = exclude or [] # Include custom_field_data as "custom_fields" - if hasattr(obj, 'custom_field_data'): + if 'custom_field_data' in data: data['custom_fields'] = data.pop('custom_field_data') # Resolve any assigned tags to their names. Check for tags cached on the instance;