mirror of
				https://github.com/netbox-community/netbox.git
				synced 2024-05-10 07:54:54 +00:00 
			
		
		
		
	Extended DeviceTypeSerializer to include component templates
This commit is contained in:
		@@ -1,7 +1,8 @@
 | 
			
		||||
from rest_framework import serializers
 | 
			
		||||
 | 
			
		||||
from ipam.models import IPAddress
 | 
			
		||||
from dcim.models import Site, Rack, RackGroup, Manufacturer, DeviceType, DeviceRole, Platform, Device, ConsolePort,\
 | 
			
		||||
from dcim.models import Site, Rack, RackGroup, Manufacturer, ConsolePortTemplate, ConsoleServerPortTemplate, \
 | 
			
		||||
    PowerPortTemplate, PowerOutletTemplate, InterfaceTemplate, DeviceType, DeviceRole, Platform, Device, ConsolePort, \
 | 
			
		||||
    ConsoleServerPort, PowerPort, PowerOutlet, Interface, InterfaceConnection, RACK_FACE_FRONT, RACK_FACE_REAR
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -107,12 +108,54 @@ class ManufacturerNestedSerializer(ManufacturerSerializer):
 | 
			
		||||
# Device types
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
class ConsolePortTemplateNestedSerializer(serializers.ModelSerializer):
 | 
			
		||||
 | 
			
		||||
    class Meta:
 | 
			
		||||
        model = ConsolePortTemplate
 | 
			
		||||
        fields = ['id', 'name']
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ConsoleServerPortTemplateNestedSerializer(serializers.ModelSerializer):
 | 
			
		||||
 | 
			
		||||
    class Meta:
 | 
			
		||||
        model = ConsoleServerPortTemplate
 | 
			
		||||
        fields = ['id', 'name']
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class PowerPortTemplateNestedSerializer(serializers.ModelSerializer):
 | 
			
		||||
 | 
			
		||||
    class Meta:
 | 
			
		||||
        model = PowerPortTemplate
 | 
			
		||||
        fields = ['id', 'name']
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class PowerOutletTemplateNestedSerializer(serializers.ModelSerializer):
 | 
			
		||||
 | 
			
		||||
    class Meta:
 | 
			
		||||
        model = PowerOutletTemplate
 | 
			
		||||
        fields = ['id', 'name']
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class InterfaceTemplateNestedSerializer(serializers.ModelSerializer):
 | 
			
		||||
 | 
			
		||||
    class Meta:
 | 
			
		||||
        model = InterfaceTemplate
 | 
			
		||||
        fields = ['id', 'name', 'form_factor', 'mgmt_only']
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class DeviceTypeSerializer(serializers.ModelSerializer):
 | 
			
		||||
    manufacturer = ManufacturerNestedSerializer()
 | 
			
		||||
    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']
 | 
			
		||||
        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):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user