Kaynağa Gözat

Fixes #13849: Fix label resolution during serialization for removed field choices (#13867)

* Fixes #13849: Fix label resolution during serialization for removed field choices

* Cleanup
Jeremy Stretch 2 yıl önce
ebeveyn
işleme
3cb41bbe3a
1 değiştirilmiş dosya ile 7 ekleme ve 6 silme
  1. 7 6
      netbox/netbox/api/fields.py

+ 7 - 6
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 == '':