From 2a9b58925c5c9dbbcb297effa4c542225cbfa32d Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 21 Sep 2023 14:21:13 -0400 Subject: [PATCH 1/2] Fixes #13849: Fix label resolution during serialization for removed field choices --- netbox/netbox/api/fields.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/netbox/netbox/api/fields.py b/netbox/netbox/api/fields.py index 347ed55bdaa..1fb61157786 100644 --- a/netbox/netbox/api/fields.py +++ b/netbox/netbox/api/fields.py @@ -46,12 +46,14 @@ def validate_empty_values(self, data): 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). + label = self._choices.get(obj, '') + return { + 'value': obj, + 'label': label, + } def to_internal_value(self, data): if data == '': From b36f2ba1c96822cbd56a5e4ebbd6b1026190e460 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 26 Sep 2023 12:06:10 -0400 Subject: [PATCH 2/2] Cleanup --- netbox/netbox/api/fields.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/netbox/netbox/api/fields.py b/netbox/netbox/api/fields.py index 1fb61157786..d6e43ea7533 100644 --- a/netbox/netbox/api/fields.py +++ b/netbox/netbox/api/fields.py @@ -49,10 +49,9 @@ def to_representation(self, 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). - label = self._choices.get(obj, '') return { 'value': obj, - 'label': label, + 'label': self._choices.get(obj, ''), } def to_internal_value(self, data):