Просмотр исходного кода

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

Jeremy Stretch 6 лет назад
Родитель
Сommit
858be6d216
2 измененных файлов с 11 добавлено и 4 удалено
  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
 
+* [#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
 
 ---

+ 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 users.api.nested_serializers import NestedUserSerializer
 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 *
 
@@ -235,9 +236,14 @@ class ObjectChangeSerializer(serializers.ModelSerializer):
         """
         if obj.changed_object is 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
-        context = {'request': self.context['request']}
+        context = {
+            'request': self.context['request']
+        }
         data = serializer(obj.changed_object, context=context).data
+
         return data