diff --git a/netbox/circuits/api/views.py b/netbox/circuits/api/views.py index c70fbb316..71db8f8f2 100644 --- a/netbox/circuits/api/views.py +++ b/netbox/circuits/api/views.py @@ -58,7 +58,6 @@ class CircuitTerminationViewSet(PassThroughPortMixin, NetBoxModelViewSet): queryset = CircuitTermination.objects.all() serializer_class = serializers.CircuitTerminationSerializer filterset_class = filtersets.CircuitTerminationFilterSet - brief_prefetch_fields = ['circuit'] # diff --git a/netbox/dcim/api/views.py b/netbox/dcim/api/views.py index 028936d34..c429980c4 100644 --- a/netbox/dcim/api/views.py +++ b/netbox/dcim/api/views.py @@ -274,14 +274,12 @@ class DeviceTypeViewSet(NetBoxModelViewSet): ) serializer_class = serializers.DeviceTypeSerializer filterset_class = filtersets.DeviceTypeFilterSet - brief_prefetch_fields = ['manufacturer'] class ModuleTypeViewSet(NetBoxModelViewSet): queryset = ModuleType.objects.all() serializer_class = serializers.ModuleTypeSerializer filterset_class = filtersets.ModuleTypeFilterSet - brief_prefetch_fields = ['manufacturer'] # @@ -435,7 +433,6 @@ class ConsolePortViewSet(PathEndpointMixin, NetBoxModelViewSet): ) serializer_class = serializers.ConsolePortSerializer filterset_class = filtersets.ConsolePortFilterSet - brief_prefetch_fields = ['device'] class ConsoleServerPortViewSet(PathEndpointMixin, NetBoxModelViewSet): @@ -444,7 +441,6 @@ class ConsoleServerPortViewSet(PathEndpointMixin, NetBoxModelViewSet): ) serializer_class = serializers.ConsoleServerPortSerializer filterset_class = filtersets.ConsoleServerPortFilterSet - brief_prefetch_fields = ['device'] class PowerPortViewSet(PathEndpointMixin, NetBoxModelViewSet): @@ -453,7 +449,6 @@ class PowerPortViewSet(PathEndpointMixin, NetBoxModelViewSet): ) serializer_class = serializers.PowerPortSerializer filterset_class = filtersets.PowerPortFilterSet - brief_prefetch_fields = ['device'] class PowerOutletViewSet(PathEndpointMixin, NetBoxModelViewSet): @@ -462,7 +457,6 @@ class PowerOutletViewSet(PathEndpointMixin, NetBoxModelViewSet): ) serializer_class = serializers.PowerOutletSerializer filterset_class = filtersets.PowerOutletFilterSet - brief_prefetch_fields = ['device'] class InterfaceViewSet(PathEndpointMixin, NetBoxModelViewSet): @@ -474,7 +468,6 @@ class InterfaceViewSet(PathEndpointMixin, NetBoxModelViewSet): ) serializer_class = serializers.InterfaceSerializer filterset_class = filtersets.InterfaceFilterSet - brief_prefetch_fields = ['device'] def get_bulk_destroy_queryset(self): # Ensure child interfaces are deleted prior to their parents @@ -487,7 +480,6 @@ class FrontPortViewSet(PassThroughPortMixin, NetBoxModelViewSet): ) serializer_class = serializers.FrontPortSerializer filterset_class = filtersets.FrontPortFilterSet - brief_prefetch_fields = ['device'] class RearPortViewSet(PassThroughPortMixin, NetBoxModelViewSet): @@ -496,28 +488,24 @@ class RearPortViewSet(PassThroughPortMixin, NetBoxModelViewSet): ) serializer_class = serializers.RearPortSerializer filterset_class = filtersets.RearPortFilterSet - brief_prefetch_fields = ['device'] class ModuleBayViewSet(NetBoxModelViewSet): queryset = ModuleBay.objects.all() serializer_class = serializers.ModuleBaySerializer filterset_class = filtersets.ModuleBayFilterSet - brief_prefetch_fields = ['device'] class DeviceBayViewSet(NetBoxModelViewSet): queryset = DeviceBay.objects.all() serializer_class = serializers.DeviceBaySerializer filterset_class = filtersets.DeviceBayFilterSet - brief_prefetch_fields = ['device'] class InventoryItemViewSet(MPTTLockedMixin, NetBoxModelViewSet): queryset = InventoryItem.objects.all() serializer_class = serializers.InventoryItemSerializer filterset_class = filtersets.InventoryItemFilterSet - brief_prefetch_fields = ['device'] # @@ -557,7 +545,6 @@ class VirtualChassisViewSet(NetBoxModelViewSet): queryset = VirtualChassis.objects.all() serializer_class = serializers.VirtualChassisSerializer filterset_class = filtersets.VirtualChassisFilterSet - brief_prefetch_fields = ['master'] # diff --git a/netbox/ipam/api/views.py b/netbox/ipam/api/views.py index 91ed925c0..c3594bdcf 100644 --- a/netbox/ipam/api/views.py +++ b/netbox/ipam/api/views.py @@ -134,7 +134,6 @@ class FHRPGroupViewSet(NetBoxModelViewSet): queryset = FHRPGroup.objects.all() serializer_class = serializers.FHRPGroupSerializer filterset_class = filtersets.FHRPGroupFilterSet - brief_prefetch_fields = ('ip_addresses',) class FHRPGroupAssignmentViewSet(NetBoxModelViewSet): diff --git a/netbox/netbox/api/viewsets/mixins.py b/netbox/netbox/api/viewsets/mixins.py index a45e0bdda..b2c6bdda6 100644 --- a/netbox/netbox/api/viewsets/mixins.py +++ b/netbox/netbox/api/viewsets/mixins.py @@ -30,7 +30,6 @@ class BriefModeMixin: GET /api/dcim/sites/?brief=True """ brief = False - brief_prefetch_fields = [] def initialize_request(self, request, *args, **kwargs): # Annotate whether brief mode is active @@ -53,22 +52,6 @@ class BriefModeMixin: return self.serializer_class - def get_queryset(self): - qs = super().get_queryset() - - if self.brief: - serializer_class = self.get_serializer_class() - - # Clear any annotations for fields not present on the nested serializer - for annotation in list(qs.query.annotations.keys()): - if annotation not in serializer_class().fields: - qs.query.annotations.pop(annotation) - - # Clear any prefetches from the queryset and append only brief_prefetch_fields (if any) - return qs.prefetch_related(None).prefetch_related(*self.brief_prefetch_fields) - - return qs - class CustomFieldsMixin: """ diff --git a/netbox/virtualization/api/views.py b/netbox/virtualization/api/views.py index e916c35a0..ff894c6dc 100644 --- a/netbox/virtualization/api/views.py +++ b/netbox/virtualization/api/views.py @@ -84,7 +84,6 @@ class VMInterfaceViewSet(NetBoxModelViewSet): ) serializer_class = serializers.VMInterfaceSerializer filterset_class = filtersets.VMInterfaceFilterSet - brief_prefetch_fields = ['virtual_machine'] def get_bulk_destroy_queryset(self): # Ensure child interfaces are deleted prior to their parents @@ -95,4 +94,3 @@ class VirtualDiskViewSet(NetBoxModelViewSet): queryset = VirtualDisk.objects.all() serializer_class = serializers.VirtualDiskSerializer filterset_class = filtersets.VirtualDiskFilterSet - brief_prefetch_fields = ['virtual_machine']