Browse Source

Fixes #3039: Fix exception when retrieving change object for a component template via API

Jeremy Stretch 6 năm trước cách đây
mục cha
commit
858be6d216
2 tập tin đã thay đổi với 11 bổ sung4 xóa
  1. 1 0
      CHANGELOG.md
  2. 10 4
      netbox/extras/api/serializers.py

+ 1 - 0
CHANGELOG.md

@@ -2,6 +2,7 @@ v2.5.10 (FUTURE)
 
 
 ## Bug Fixes
 ## Bug Fixes
 
 
+* [#3039](https://github.com/digitalocean/netbox/issues/3039) - Fix exception when retrieving change object for a component template via API
 * [#3041](https://github.com/digitalocean/netbox/issues/3041) - Fix form widget for bulk cable label update
 * [#3041](https://github.com/digitalocean/netbox/issues/3041) - Fix form widget for bulk cable label update
 
 
 ---
 ---

+ 10 - 4
netbox/extras/api/serializers.py

@@ -16,7 +16,8 @@ from tenancy.api.nested_serializers import NestedTenantSerializer, NestedTenantG
 from tenancy.models import Tenant, TenantGroup
 from tenancy.models import Tenant, TenantGroup
 from users.api.nested_serializers import NestedUserSerializer
 from users.api.nested_serializers import NestedUserSerializer
 from utilities.api import (
 from utilities.api import (
-    ChoiceField, ContentTypeField, get_serializer_for_model, SerializedPKRelatedField, ValidatedModelSerializer,
+    ChoiceField, ContentTypeField, get_serializer_for_model, SerializerNotFound, SerializedPKRelatedField,
+    ValidatedModelSerializer,
 )
 )
 from .nested_serializers import *
 from .nested_serializers import *
 
 
@@ -235,9 +236,14 @@ class ObjectChangeSerializer(serializers.ModelSerializer):
         """
         """
         if obj.changed_object is None:
         if obj.changed_object is None:
             return None
             return None
-        serializer = get_serializer_for_model(obj.changed_object, prefix='Nested')
-        if serializer is None:
+
+        try:
+            serializer = get_serializer_for_model(obj.changed_object, prefix='Nested')
+        except SerializerNotFound:
             return obj.object_repr
             return obj.object_repr
-        context = {'request': self.context['request']}
+        context = {
+            'request': self.context['request']
+        }
         data = serializer(obj.changed_object, context=context).data
         data = serializer(obj.changed_object, context=context).data
+
         return data
         return data