diff --git a/netbox/dcim/api/views.py b/netbox/dcim/api/views.py index 56d4221da..4d8154936 100644 --- a/netbox/dcim/api/views.py +++ b/netbox/dcim/api/views.py @@ -83,7 +83,7 @@ class RackRoleViewSet(ModelViewSet): # class RackViewSet(WritableSerializerMixin, CustomFieldModelViewSet): - queryset = Rack.objects.select_related('site', 'group__site', 'tenant') + queryset = Rack.objects.select_related('site', 'group__site', 'tenant', 'role') serializer_class = serializers.RackSerializer write_serializer_class = serializers.WritableRackSerializer filter_class = filters.RackFilter @@ -219,6 +219,7 @@ class DeviceViewSet(WritableSerializerMixin, CustomFieldModelViewSet): queryset = Device.objects.select_related( 'device_type__manufacturer', 'device_role', 'tenant', 'platform', 'site', 'rack', 'parent_bay', ).prefetch_related( + 'primary_ip4', 'primary_ip6', 'primary_ip4__nat_outside', 'primary_ip6__nat_outside', ) serializer_class = serializers.DeviceSerializer @@ -320,7 +321,15 @@ class PowerOutletViewSet(WritableSerializerMixin, ModelViewSet): class InterfaceViewSet(WritableSerializerMixin, ModelViewSet): - queryset = Interface.objects.select_related('device') + queryset = Interface.objects.select_related( + 'circuit_termination__circuit', + 'circuit_termination__interface', + 'connected_as_a__interface_b', + 'connected_as_a__interface_b__device', + 'connected_as_b__interface_a', + 'connected_as_b__interface_a__device', + 'device', + 'lag') serializer_class = serializers.InterfaceSerializer write_serializer_class = serializers.WritableInterfaceSerializer filter_class = filters.InterfaceFilter diff --git a/netbox/extras/api/views.py b/netbox/extras/api/views.py index 37112f2c6..7621142b9 100644 --- a/netbox/extras/api/views.py +++ b/netbox/extras/api/views.py @@ -92,6 +92,6 @@ class RecentActivityViewSet(ReadOnlyModelViewSet): """ List all UserActions to provide a log of recent activity. """ - queryset = UserAction.objects.all() + queryset = UserAction.objects.select_related('user') serializer_class = serializers.UserActionSerializer filter_class = filters.UserActionFilter diff --git a/netbox/ipam/api/views.py b/netbox/ipam/api/views.py index abff09c15..bcde765c5 100644 --- a/netbox/ipam/api/views.py +++ b/netbox/ipam/api/views.py @@ -134,7 +134,18 @@ class PrefixViewSet(WritableSerializerMixin, CustomFieldModelViewSet): # class IPAddressViewSet(WritableSerializerMixin, CustomFieldModelViewSet): - queryset = IPAddress.objects.select_related('vrf__tenant', 'tenant', 'interface__device', 'nat_inside') + queryset = IPAddress.objects.select_related( + 'interface', + 'interface__circuit_termination', + 'interface__connected_as_a__interface_b', + 'interface__connected_as_a__interface_b__device', + 'interface__connected_as_b__interface_a', + 'interface__connected_as_b__interface_a__device', + 'interface__device', + 'nat_inside', + 'nat_outside', + 'tenant', + 'vrf__tenant') serializer_class = serializers.IPAddressSerializer write_serializer_class = serializers.WritableIPAddressSerializer filter_class = filters.IPAddressFilter