From 1770c8568940cd801d0d2b6c7948f778043fec51 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 25 Jul 2017 10:56:23 -0400 Subject: [PATCH] Fixes #1371: Extend DeviceSerializer.parent_device to include standard fields --- netbox/dcim/api/serializers.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/netbox/dcim/api/serializers.py b/netbox/dcim/api/serializers.py index 09da3ced7..50bf756e3 100644 --- a/netbox/dcim/api/serializers.py +++ b/netbox/dcim/api/serializers.py @@ -473,14 +473,10 @@ class DeviceSerializer(CustomFieldModelSerializer): 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, - } - } + context = {'request': self.context['request']} + data = NestedDeviceSerializer(instance=device_bay.device, context=context).data + data['device_bay'] = NestedDeviceBaySerializer(instance=device_bay, context=context).data + return data class WritableDeviceSerializer(CustomFieldModelSerializer): @@ -690,6 +686,14 @@ class DeviceBaySerializer(serializers.ModelSerializer): fields = ['id', 'device', 'name', 'installed_device'] +class NestedDeviceBaySerializer(serializers.ModelSerializer): + url = serializers.HyperlinkedIdentityField(view_name='dcim-api:devicebay-detail') + + class Meta: + model = DeviceBay + fields = ['id', 'url', 'name'] + + class WritableDeviceBaySerializer(ModelValidationMixin, serializers.ModelSerializer): class Meta: