From 3cb41bbe3a2effe4dfd487e1ae6156de3b47285a Mon Sep 17 00:00:00 2001 From: Jeremy Stretch <jstretch@netboxlabs.com> Date: Tue, 26 Sep 2023 12:06:47 -0400 Subject: [PATCH] Fixes #13849: Fix label resolution during serialization for removed field choices (#13867) * Fixes #13849: Fix label resolution during serialization for removed field choices * Cleanup --- netbox/netbox/api/fields.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/netbox/netbox/api/fields.py b/netbox/netbox/api/fields.py index 347ed55bd..d6e43ea75 100644 --- a/netbox/netbox/api/fields.py +++ b/netbox/netbox/api/fields.py @@ -46,12 +46,13 @@ class ChoiceField(serializers.Field): return super().validate_empty_values(data) def to_representation(self, obj): - if obj == '': - return None - return { - 'value': obj, - 'label': self._choices[obj], - } + if obj != '': + # Use an empty string in place of the choice label if it cannot be resolved (i.e. because a previously + # configured choice has been removed from FIELD_CHOICES). + return { + 'value': obj, + 'label': self._choices.get(obj, ''), + } def to_internal_value(self, data): if data == '':