Coverage for dcim/api/serializers_/platforms.py: 100%

17 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-10 18:35 +0000

1from rest_framework import serializers 

2 

3from dcim.models import Platform 

4from extras.api.serializers_.configtemplates import ConfigTemplateSerializer 

5from netbox.api.serializers import NestedGroupModelSerializer 

6 

7from .manufacturers import ManufacturerSerializer 

8from .nested import NestedPlatformSerializer 

9 

10__all__ = ( 

11 'PlatformSerializer', 

12) 

13 

14 

15class PlatformSerializer(NestedGroupModelSerializer): 

16 parent = NestedPlatformSerializer(required=False, allow_null=True, default=None) 

17 manufacturer = ManufacturerSerializer(nested=True, required=False, allow_null=True) 

18 config_template = ConfigTemplateSerializer(nested=True, required=False, allow_null=True, default=None) 

19 

20 # Related object counts 

21 device_count = serializers.IntegerField(read_only=True, default=0) 

22 virtualmachine_count = serializers.IntegerField(read_only=True, default=0) 

23 

24 class Meta: 

25 model = Platform 

26 fields = [ 

27 'id', 'url', 'display_url', 'display', 'parent', 'name', 'slug', 'manufacturer', 'config_template', 

28 'description', 'owner', 'comments', 'tags', 'custom_fields', 'created', 'last_updated', 'device_count', 

29 'virtualmachine_count', '_depth', 

30 ] 

31 brief_fields = ( 

32 'id', 'url', 'display', 'name', 'slug', 'description', 'device_count', 'virtualmachine_count', '_depth', 

33 )