content: from drf_spectacular.types import OpenApiTypes
  from drf_spectacular.utils import extend_schema_field
  from rest_framework import serializers
  
  from dcim.choices import *
  from netbox.api.fields import ChoiceField
  from .devices import DeviceSerializer
  
  __all__ = (
      'RackUnitSerializer',
  )
  
  
  class RackUnitSerializer(serializers.Serializer):
      """
      A rack unit is an abstraction formed by the set (rack, position, face); it does not exist as a row in the database.
      """
      id = serializers.DecimalField(
          max_digits=4,
          decimal_places=1,
          read_only=True
      )
      name = serializers.CharField(read_only=True)
      face = ChoiceField(choices=DeviceFaceChoices, read_only=True)
      device = DeviceSerializer(nested=True, read_only=True)
      occupied = serializers.BooleanField(read_only=True)
      display = serializers.SerializerMethodField(read_only=True)
  
      @extend_schema_field(OpenApiTypes.STR)
      def get_display(self, obj):
          return obj['name']
  