From 05dcf02dbed4aab049cf34974fef0474b6f4af8d Mon Sep 17 00:00:00 2001 From: Martin Hauser Date: Mon, 4 May 2026 14:15:16 +0200 Subject: [PATCH] fix(dcim): Mark cable_end as nullable in CabledObject Serializer Use DRF's ChoiceField for `cable_end` to preserve the existing raw "A"/"B" API output while documenting the allowed values and nullability in the generated schema. Fixes #22084 --- netbox/dcim/api/serializers_/cables.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/netbox/dcim/api/serializers_/cables.py b/netbox/dcim/api/serializers_/cables.py index 2b49acbc5..1f23815ed 100644 --- a/netbox/dcim/api/serializers_/cables.py +++ b/netbox/dcim/api/serializers_/cables.py @@ -95,7 +95,8 @@ class CablePathSerializer(serializers.ModelSerializer): class CabledObjectSerializer(serializers.ModelSerializer): cable = CableSerializer(nested=True, read_only=True, allow_null=True) - cable_end = serializers.CharField(read_only=True) + # Use DRF's ChoiceField; NetBox's ChoiceField would return a value/label object. + cable_end = serializers.ChoiceField(choices=CableEndChoices, read_only=True, allow_null=True) link_peers_type = serializers.SerializerMethodField(read_only=True, allow_null=True) link_peers = serializers.SerializerMethodField(read_only=True) _occupied = serializers.SerializerMethodField(read_only=True)