1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

implemented #2350 - config context included by default in API

This commit is contained in:
John Anderson
2019-02-18 21:37:00 -05:00
parent 9d055ff4fd
commit bd573fd5cf
2 changed files with 25 additions and 4 deletions

View File

@@ -291,16 +291,23 @@ class DeviceViewSet(CustomFieldModelViewSet):
def get_serializer_class(self):
"""
Include rendered config context when retrieving a single Device.
Select the specific serializer based on the request context.
If the `brief` query param equates to True, return the NestedDeviceSerializer
If the `exclude` query param includes `config_context` as a value, return the DeviceSerializer
Else, return the DeviceWithConfigContextSerializer
"""
if self.action == 'retrieve':
return serializers.DeviceWithConfigContextSerializer
request = self.get_serializer_context()['request']
if request.query_params.get('brief', False):
return serializers.NestedDeviceSerializer
return serializers.DeviceSerializer
elif 'config_context' in request.query_params.get('exclude', []):
return serializers.DeviceSerializer
return serializers.DeviceWithConfigContextSerializer
@action(detail=True, url_path='napalm')
def napalm(self, request, pk):