diff --git a/netbox/dcim/api/serializers.py b/netbox/dcim/api/serializers.py index 5390b6078..217df25ab 100644 --- a/netbox/dcim/api/serializers.py +++ b/netbox/dcim/api/serializers.py @@ -103,7 +103,7 @@ class RackSerializer(CustomFieldModelSerializer): tenant = NestedTenantSerializer() role = NestedRackRoleSerializer() type = ChoiceFieldSerializer(choices=RACK_TYPE_CHOICES) - # width = ChoiceFieldSerializer(choices=RACK_WIDTH_CHOICES) + width = ChoiceFieldSerializer(choices=RACK_WIDTH_CHOICES) class Meta: model = Rack diff --git a/netbox/utilities/api.py b/netbox/utilities/api.py index a44fadb0c..6ec252bbd 100644 --- a/netbox/utilities/api.py +++ b/netbox/utilities/api.py @@ -12,18 +12,18 @@ class ServiceUnavailable(APIException): class ChoiceFieldSerializer(Field): """ - Represent a ChoiceField as a list of (value, label) tuples. + Represent a ChoiceField as (value, label). """ def __init__(self, choices, **kwargs): - self._choices = choices + self._choices = {k: v for k, v in choices} super(ChoiceFieldSerializer, self).__init__(**kwargs) def to_representation(self, obj): - return self._choices[obj] + return obj, self._choices[obj] def to_internal_value(self, data): - return getattr(self._choices, data) + return self._choices.get(data) class WritableSerializerMixin(object):