Browse Source

Created CircuitDetailSerializer

Jeremy Stretch 8 years ago
parent
commit
791a641eef
2 changed files with 20 additions and 4 deletions
  1. 15 3
      netbox/circuits/api/serializers.py
  2. 5 1
      netbox/circuits/api/views.py

+ 15 - 3
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']

+ 5 - 1
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