platforms.py 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. from rest_framework import serializers
  2. from dcim.models import Platform
  3. from extras.api.serializers_.configtemplates import ConfigTemplateSerializer
  4. from netbox.api.serializers import NestedGroupModelSerializer
  5. from .manufacturers import ManufacturerSerializer
  6. from .nested import NestedPlatformSerializer
  7. __all__ = (
  8. 'PlatformSerializer',
  9. )
  10. class PlatformSerializer(NestedGroupModelSerializer):
  11. parent = NestedPlatformSerializer(required=False, allow_null=True, default=None)
  12. manufacturer = ManufacturerSerializer(nested=True, required=False, allow_null=True)
  13. config_template = ConfigTemplateSerializer(nested=True, required=False, allow_null=True, default=None)
  14. # Related object counts
  15. device_count = serializers.IntegerField(read_only=True, default=0)
  16. virtualmachine_count = serializers.IntegerField(read_only=True, default=0)
  17. class Meta:
  18. model = Platform
  19. fields = [
  20. 'id', 'url', 'display_url', 'display', 'parent', 'name', 'slug', 'manufacturer', 'config_template',
  21. 'description', 'owner', 'comments', 'tags', 'custom_fields', 'created', 'last_updated', 'device_count',
  22. 'virtualmachine_count', '_depth',
  23. ]
  24. brief_fields = (
  25. 'id', 'url', 'display', 'name', 'slug', 'description', 'device_count', 'virtualmachine_count', '_depth',
  26. )