Sfoglia il codice sorgente

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 anni fa
parent
commit
3cb41bbe3a
1 ha cambiato i file con 7 aggiunte e 6 eliminazioni
  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 == '':