From 21281789e0b4982950c8cf82a937e2a35dab2e9f Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 16 Feb 2017 14:37:21 -0500 Subject: [PATCH] Tweaked ChoiceFieldSerializer to display a field as (value, label) --- netbox/dcim/api/serializers.py | 2 +- netbox/utilities/api.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) 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):