mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
32 lines
986 B
Python
32 lines
986 B
Python
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']
|