diff --git a/netbox/dcim/api/serializers.py b/netbox/dcim/api/serializers.py index 5a7835c1e..be60d3ba0 100644 --- a/netbox/dcim/api/serializers.py +++ b/netbox/dcim/api/serializers.py @@ -110,6 +110,21 @@ class ManufacturerNestedSerializer(ManufacturerSerializer): # Device types # +class DeviceTypeSerializer(serializers.ModelSerializer): + manufacturer = ManufacturerNestedSerializer() + + class Meta: + model = DeviceType + fields = ['id', 'manufacturer', 'model', 'slug', 'u_height', 'is_full_depth', 'is_console_server', 'is_pdu', + 'is_network_device'] + + +class DeviceTypeNestedSerializer(DeviceTypeSerializer): + + class Meta(DeviceTypeSerializer.Meta): + fields = ['id', 'manufacturer', 'model', 'slug'] + + class ConsolePortTemplateNestedSerializer(serializers.ModelSerializer): class Meta: @@ -145,25 +160,17 @@ class InterfaceTemplateNestedSerializer(serializers.ModelSerializer): fields = ['id', 'name', 'form_factor', 'mgmt_only'] -class DeviceTypeSerializer(serializers.ModelSerializer): - manufacturer = ManufacturerNestedSerializer() +class DeviceTypeDetailSerializer(DeviceTypeSerializer): console_port_templates = ConsolePortTemplateNestedSerializer(many=True, read_only=True) cs_port_templates = ConsoleServerPortTemplateNestedSerializer(many=True, read_only=True) power_port_templates = PowerPortTemplateNestedSerializer(many=True, read_only=True) power_outlet_templates = PowerPortTemplateNestedSerializer(many=True, read_only=True) interface_templates = InterfaceTemplateNestedSerializer(many=True, read_only=True) - class Meta: - model = DeviceType - fields = ['id', 'manufacturer', 'model', 'slug', 'u_height', 'is_console_server', 'is_pdu', 'is_network_device', - 'console_port_templates', 'cs_port_templates', 'power_port_templates', 'power_outlet_templates', - 'interface_templates'] - - -class DeviceTypeNestedSerializer(DeviceTypeSerializer): - class Meta(DeviceTypeSerializer.Meta): - fields = ['id', 'manufacturer', 'model', 'slug'] + fields = ['id', 'manufacturer', 'model', 'slug', 'u_height', 'is_full_depth', 'is_console_server', 'is_pdu', + 'is_network_device', 'console_port_templates', 'cs_port_templates', 'power_port_templates', + 'power_outlet_templates', 'interface_templates'] # diff --git a/netbox/dcim/api/views.py b/netbox/dcim/api/views.py index 4294643df..a576a04a2 100644 --- a/netbox/dcim/api/views.py +++ b/netbox/dcim/api/views.py @@ -142,7 +142,7 @@ class DeviceTypeDetailView(generics.RetrieveAPIView): Retrieve a single device type """ queryset = DeviceType.objects.select_related('manufacturer') - serializer_class = serializers.DeviceTypeSerializer + serializer_class = serializers.DeviceTypeDetailSerializer #