From 791a641eef20cf129ebd6ac80b04f6dc0b2853e0 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 26 Jan 2017 15:33:41 -0500 Subject: [PATCH] Created CircuitDetailSerializer --- netbox/circuits/api/serializers.py | 18 +++++++++++++++--- netbox/circuits/api/views.py | 6 +++++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/netbox/circuits/api/serializers.py b/netbox/circuits/api/serializers.py index 947aa9860..ba1ba80a9 100644 --- a/netbox/circuits/api/serializers.py +++ b/netbox/circuits/api/serializers.py @@ -42,7 +42,7 @@ class CircuitTypeNestedSerializer(CircuitTypeSerializer): # -# Circuits +# Circuit Terminations # class CircuitTerminationSerializer(serializers.ModelSerializer): @@ -54,19 +54,31 @@ class CircuitTerminationSerializer(serializers.ModelSerializer): fields = ['id', 'term_side', 'site', 'interface', 'port_speed', 'upstream_speed', 'xconnect_id', 'pp_info'] +# +# Circuits +# + + class CircuitSerializer(CustomFieldSerializer, serializers.ModelSerializer): provider = ProviderNestedSerializer() type = CircuitTypeNestedSerializer() tenant = TenantNestedSerializer() - terminations = CircuitTerminationSerializer(many=True) class Meta: model = Circuit fields = ['id', 'cid', 'provider', 'type', 'tenant', 'install_date', 'commit_rate', 'description', 'comments', - 'terminations', 'custom_fields'] + 'custom_fields'] class CircuitNestedSerializer(CircuitSerializer): class Meta(CircuitSerializer.Meta): fields = ['id', 'cid'] + + +class CircuitDetailSerializer(CircuitSerializer): + terminations = CircuitTerminationSerializer(many=True) + + class Meta(CircuitSerializer.Meta): + fields = ['id', 'cid', 'provider', 'type', 'tenant', 'install_date', 'commit_rate', 'description', 'comments', + 'terminations', 'custom_fields'] diff --git a/netbox/circuits/api/views.py b/netbox/circuits/api/views.py index 6c64da329..ec1f1c8ac 100644 --- a/netbox/circuits/api/views.py +++ b/netbox/circuits/api/views.py @@ -40,5 +40,9 @@ class CircuitViewSet(CustomFieldModelViewSet): List and retrieve circuits """ queryset = Circuit.objects.select_related('type', 'tenant', 'provider') - serializer_class = serializers.CircuitSerializer filter_class = CircuitFilter + + def get_serializer_class(self): + if self.action == 'retrieve': + return serializers.CircuitDetailSerializer + return serializers.CircuitSerializer