1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Initialize dynamically-resolved serializers with nested=True

This commit is contained in:
Jeremy Stretch
2024-02-27 14:56:36 -05:00
parent ca56c8b9ef
commit 78e284c14f
19 changed files with 54 additions and 88 deletions

View File

@@ -5,7 +5,6 @@ from rest_framework import serializers
from ipam.models import FHRPGroup, FHRPGroupAssignment
from netbox.api.fields import ContentTypeField
from netbox.api.serializers import NetBoxModelSerializer
from netbox.constants import NESTED_SERIALIZER_PREFIX
from utilities.api import get_serializer_for_model
from .ip import IPAddressSerializer
@@ -48,6 +47,6 @@ class FHRPGroupAssignmentSerializer(NetBoxModelSerializer):
def get_interface(self, obj):
if obj.interface is None:
return None
serializer = get_serializer_for_model(obj.interface, prefix=NESTED_SERIALIZER_PREFIX)
serializer = get_serializer_for_model(obj.interface)
context = {'request': self.context['request']}
return serializer(obj.interface, context=context).data
return serializer(obj.interface, nested=True, context=context).data

View File

@@ -8,16 +8,14 @@ from ipam.constants import IPADDRESS_ASSIGNMENT_MODELS
from ipam.models import Aggregate, IPAddress, IPRange, Prefix
from netbox.api.fields import ChoiceField, ContentTypeField
from netbox.api.serializers import NetBoxModelSerializer
from netbox.constants import NESTED_SERIALIZER_PREFIX
from tenancy.api.serializers_.tenants import TenantSerializer
from utilities.api import get_serializer_for_model
from ..field_serializers import IPAddressField, IPNetworkField
from ..nested_serializers import *
from .asns import RIRSerializer
from .vrfs import VRFSerializer
from .roles import RoleSerializer
from .vlans import VLANSerializer
from .vrfs import VRFSerializer
from ..field_serializers import IPAddressField, IPNetworkField
from ..nested_serializers import *
__all__ = (
'AggregateSerializer',
@@ -174,9 +172,9 @@ class IPAddressSerializer(NetBoxModelSerializer):
def get_assigned_object(self, obj):
if obj.assigned_object is None:
return None
serializer = get_serializer_for_model(obj.assigned_object, prefix=NESTED_SERIALIZER_PREFIX)
serializer = get_serializer_for_model(obj.assigned_object)
context = {'request': self.context['request']}
return serializer(obj.assigned_object, context=context).data
return serializer(obj.assigned_object, nested=True, context=context).data
class AvailableIPSerializer(serializers.Serializer):

View File

@@ -8,11 +8,9 @@ from ipam.constants import VLANGROUP_SCOPE_TYPES
from ipam.models import VLAN, VLANGroup
from netbox.api.fields import ChoiceField, ContentTypeField, RelatedObjectCountField
from netbox.api.serializers import NetBoxModelSerializer
from netbox.constants import NESTED_SERIALIZER_PREFIX
from tenancy.api.serializers_.tenants import TenantSerializer
from utilities.api import get_serializer_for_model
from vpn.api.serializers_.l2vpn import L2VPNTerminationSerializer
from .roles import RoleSerializer
__all__ = (
@@ -53,10 +51,9 @@ class VLANGroupSerializer(NetBoxModelSerializer):
def get_scope(self, obj):
if obj.scope_id is None:
return None
serializer = get_serializer_for_model(obj.scope, prefix=NESTED_SERIALIZER_PREFIX)
serializer = get_serializer_for_model(obj.scope)
context = {'request': self.context['request']}
return serializer(obj.scope, context=context).data
return serializer(obj.scope, nested=True, context=context).data
class VLANSerializer(NetBoxModelSerializer):