diff --git a/netbox/dcim/api/serializers.py b/netbox/dcim/api/serializers.py index 50b2348ad..2e9335069 100644 --- a/netbox/dcim/api/serializers.py +++ b/netbox/dcim/api/serializers.py @@ -221,11 +221,26 @@ class DeviceSerializer(serializers.ModelSerializer): platform = PlatformNestedSerializer() rack = RackNestedSerializer() primary_ip = DeviceIPAddressNestedSerializer() + parent_device = serializers.SerializerMethodField() class Meta: model = Device fields = ['id', 'name', 'display_name', 'device_type', 'device_role', 'platform', 'serial', 'rack', 'position', - 'face', 'status', 'primary_ip', 'comments'] + 'face', 'parent_device', 'status', 'primary_ip', 'comments'] + + def get_parent_device(self, obj): + try: + device_bay = obj.parent_bay + except DeviceBay.DoesNotExist: + return None + return { + 'id': device_bay.device.pk, + 'name': device_bay.device.name, + 'device_bay': { + 'id': device_bay.pk, + 'name': device_bay.name, + } + } class DeviceNestedSerializer(serializers.ModelSerializer):