diff --git a/netbox/project-static/js/forms.js b/netbox/project-static/js/forms.js index 967ff58c9..55ecea977 100644 --- a/netbox/project-static/js/forms.js +++ b/netbox/project-static/js/forms.js @@ -82,7 +82,7 @@ $(document).ready(function() { } if ($(parent).val() || $(parent).attr('nullable') == 'true') { - var api_url = child_field.attr('api-url') + '&limit=0'; + var api_url = child_field.attr('api-url') + '&limit=0&brief'; var disabled_indicator = child_field.attr('disabled-indicator'); var initial_value = child_field.attr('initial'); var display_field = child_field.attr('display-field') || 'name'; diff --git a/netbox/utilities/api.py b/netbox/utilities/api.py index e3011caf4..56ad405d9 100644 --- a/netbox/utilities/api.py +++ b/netbox/utilities/api.py @@ -192,6 +192,19 @@ class ModelViewSet(_ModelViewSet): return super(ModelViewSet, self).get_serializer(*args, **kwargs) + def get_serializer_class(self): + + # If 'brief' has been passed as a query param, find and return the nested serializer for this model, if one + # exists + request = self.get_serializer_context()['request'] + if 'brief' in request.query_params: + serializer_class = get_serializer_for_model(self.queryset.model, prefix='Nested') + if serializer_class is not None: + return serializer_class + + # Fall back to the hard-coded serializer class + return self.serializer_class + class FieldChoicesViewSet(ViewSet): """