mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Remove extraneous prefetch_related() calls from object list views
This commit is contained in:
@ -124,7 +124,7 @@ class CircuitListView(ObjectListView):
|
||||
|
||||
|
||||
class CircuitView(ObjectView):
|
||||
queryset = Circuit.objects.prefetch_related('provider', 'type', 'tenant__group')
|
||||
queryset = Circuit.objects.all()
|
||||
|
||||
def get(self, request, pk):
|
||||
circuit = get_object_or_404(self.queryset, pk=pk)
|
||||
|
@ -147,7 +147,7 @@ class RegionBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class SiteListView(ObjectListView):
|
||||
queryset = Site.objects.prefetch_related('region', 'tenant')
|
||||
queryset = Site.objects.all()
|
||||
filterset = filters.SiteFilterSet
|
||||
filterset_form = forms.SiteFilterForm
|
||||
table = tables.SiteTable
|
||||
@ -222,7 +222,7 @@ class RackGroupListView(ObjectListView):
|
||||
'group',
|
||||
'rack_count',
|
||||
cumulative=True
|
||||
).prefetch_related('site')
|
||||
)
|
||||
filterset = filters.RackGroupFilterSet
|
||||
filterset_form = forms.RackGroupFilterForm
|
||||
table = tables.RackGroupTable
|
||||
@ -289,9 +289,7 @@ class RackRoleBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class RackListView(ObjectListView):
|
||||
queryset = Rack.objects.prefetch_related(
|
||||
'site', 'group', 'tenant', 'role', 'devices__device_type'
|
||||
).annotate(
|
||||
queryset = Rack.objects.annotate(
|
||||
device_count=Count('devices')
|
||||
).order_by(*Rack._meta.ordering)
|
||||
filterset = filters.RackFilterSet
|
||||
@ -410,7 +408,7 @@ class RackBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class RackReservationListView(ObjectListView):
|
||||
queryset = RackReservation.objects.prefetch_related('rack__site')
|
||||
queryset = RackReservation.objects.all()
|
||||
filterset = filters.RackReservationFilterSet
|
||||
filterset_form = forms.RackReservationFilterForm
|
||||
table = tables.RackReservationTable
|
||||
@ -514,7 +512,7 @@ class ManufacturerBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class DeviceTypeListView(ObjectListView):
|
||||
queryset = DeviceType.objects.prefetch_related('manufacturer').annotate(
|
||||
queryset = DeviceType.objects.annotate(
|
||||
instance_count=Count('instances')
|
||||
).order_by(*DeviceType._meta.ordering)
|
||||
filterset = filters.DeviceTypeFilterSet
|
||||
@ -989,9 +987,7 @@ class PlatformBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class DeviceListView(ObjectListView):
|
||||
queryset = Device.objects.prefetch_related(
|
||||
'device_type__manufacturer', 'device_role', 'tenant', 'site', 'rack', 'primary_ip4', 'primary_ip6'
|
||||
)
|
||||
queryset = Device.objects.all()
|
||||
filterset = filters.DeviceFilterSet
|
||||
filterset_form = forms.DeviceFilterForm
|
||||
table = tables.DeviceTable
|
||||
@ -1263,7 +1259,7 @@ class DeviceBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class ConsolePortListView(ObjectListView):
|
||||
queryset = ConsolePort.objects.prefetch_related('device', 'cable')
|
||||
queryset = ConsolePort.objects.all()
|
||||
filterset = filters.ConsolePortFilterSet
|
||||
filterset_form = forms.ConsolePortFilterForm
|
||||
table = tables.ConsolePortTable
|
||||
@ -1323,7 +1319,7 @@ class ConsolePortBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class ConsoleServerPortListView(ObjectListView):
|
||||
queryset = ConsoleServerPort.objects.prefetch_related('device', 'cable')
|
||||
queryset = ConsoleServerPort.objects.all()
|
||||
filterset = filters.ConsoleServerPortFilterSet
|
||||
filterset_form = forms.ConsoleServerPortFilterForm
|
||||
table = tables.ConsoleServerPortTable
|
||||
@ -1383,7 +1379,7 @@ class ConsoleServerPortBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class PowerPortListView(ObjectListView):
|
||||
queryset = PowerPort.objects.prefetch_related('device', 'cable')
|
||||
queryset = PowerPort.objects.all()
|
||||
filterset = filters.PowerPortFilterSet
|
||||
filterset_form = forms.PowerPortFilterForm
|
||||
table = tables.PowerPortTable
|
||||
@ -1443,7 +1439,7 @@ class PowerPortBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class PowerOutletListView(ObjectListView):
|
||||
queryset = PowerOutlet.objects.prefetch_related('device', 'cable')
|
||||
queryset = PowerOutlet.objects.all()
|
||||
filterset = filters.PowerOutletFilterSet
|
||||
filterset_form = forms.PowerOutletFilterForm
|
||||
table = tables.PowerOutletTable
|
||||
@ -1503,7 +1499,7 @@ class PowerOutletBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class InterfaceListView(ObjectListView):
|
||||
queryset = Interface.objects.prefetch_related('device', 'cable')
|
||||
queryset = Interface.objects.all()
|
||||
filterset = filters.InterfaceFilterSet
|
||||
filterset_form = forms.InterfaceFilterForm
|
||||
table = tables.InterfaceTable
|
||||
@ -1593,7 +1589,7 @@ class InterfaceBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class FrontPortListView(ObjectListView):
|
||||
queryset = FrontPort.objects.prefetch_related('device', 'cable')
|
||||
queryset = FrontPort.objects.all()
|
||||
filterset = filters.FrontPortFilterSet
|
||||
filterset_form = forms.FrontPortFilterForm
|
||||
table = tables.FrontPortTable
|
||||
@ -1653,7 +1649,7 @@ class FrontPortBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class RearPortListView(ObjectListView):
|
||||
queryset = RearPort.objects.prefetch_related('device', 'cable')
|
||||
queryset = RearPort.objects.all()
|
||||
filterset = filters.RearPortFilterSet
|
||||
filterset_form = forms.RearPortFilterForm
|
||||
table = tables.RearPortTable
|
||||
@ -1713,7 +1709,7 @@ class RearPortBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class DeviceBayListView(ObjectListView):
|
||||
queryset = DeviceBay.objects.prefetch_related('device', 'installed_device')
|
||||
queryset = DeviceBay.objects.all()
|
||||
filterset = filters.DeviceBayFilterSet
|
||||
filterset_form = forms.DeviceBayFilterForm
|
||||
table = tables.DeviceBayTable
|
||||
@ -1836,7 +1832,7 @@ class DeviceBayBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class InventoryItemListView(ObjectListView):
|
||||
queryset = InventoryItem.objects.prefetch_related('device', 'manufacturer')
|
||||
queryset = InventoryItem.objects.all()
|
||||
filterset = filters.InventoryItemFilterSet
|
||||
filterset_form = forms.InventoryItemFilterForm
|
||||
table = tables.InventoryItemTable
|
||||
@ -1994,9 +1990,7 @@ class DeviceBulkAddInventoryItemView(BulkComponentCreateView):
|
||||
#
|
||||
|
||||
class CableListView(ObjectListView):
|
||||
queryset = Cable.objects.prefetch_related(
|
||||
'termination_a', 'termination_b'
|
||||
)
|
||||
queryset = Cable.objects.all()
|
||||
filterset = filters.CableFilterSet
|
||||
filterset_form = forms.CableFilterForm
|
||||
table = tables.CableTable
|
||||
@ -2145,9 +2139,7 @@ class CableBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class ConsoleConnectionsListView(ObjectListView):
|
||||
queryset = ConsolePort.objects.prefetch_related(
|
||||
'device', '_path__destination'
|
||||
).filter(_path__isnull=False).order_by('device')
|
||||
queryset = ConsolePort.objects.filter(_path__isnull=False).order_by('device')
|
||||
filterset = filters.ConsoleConnectionFilterSet
|
||||
filterset_form = forms.ConsoleConnectionFilterForm
|
||||
table = tables.ConsoleConnectionTable
|
||||
@ -2172,9 +2164,7 @@ class ConsoleConnectionsListView(ObjectListView):
|
||||
|
||||
|
||||
class PowerConnectionsListView(ObjectListView):
|
||||
queryset = PowerPort.objects.prefetch_related(
|
||||
'device', '_path__destination'
|
||||
).filter(_path__isnull=False).order_by('device')
|
||||
queryset = PowerPort.objects.filter(_path__isnull=False).order_by('device')
|
||||
filterset = filters.PowerConnectionFilterSet
|
||||
filterset_form = forms.PowerConnectionFilterForm
|
||||
table = tables.PowerConnectionTable
|
||||
@ -2199,9 +2189,7 @@ class PowerConnectionsListView(ObjectListView):
|
||||
|
||||
|
||||
class InterfaceConnectionsListView(ObjectListView):
|
||||
queryset = Interface.objects.prefetch_related(
|
||||
'device', '_path__destination'
|
||||
).filter(
|
||||
queryset = Interface.objects.filter(
|
||||
# Avoid duplicate connections by only selecting the lower PK in a connected pair
|
||||
_path__isnull=False,
|
||||
pk__lt=F('_path__destination_id')
|
||||
@ -2236,7 +2224,7 @@ class InterfaceConnectionsListView(ObjectListView):
|
||||
#
|
||||
|
||||
class VirtualChassisListView(ObjectListView):
|
||||
queryset = VirtualChassis.objects.prefetch_related('master').annotate(
|
||||
queryset = VirtualChassis.objects.annotate(
|
||||
member_count=Count('members', distinct=True)
|
||||
).order_by(*VirtualChassis._meta.ordering)
|
||||
table = tables.VirtualChassisTable
|
||||
@ -2466,9 +2454,7 @@ class VirtualChassisBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class PowerPanelListView(ObjectListView):
|
||||
queryset = PowerPanel.objects.prefetch_related(
|
||||
'site', 'rack_group'
|
||||
).annotate(
|
||||
queryset = PowerPanel.objects.annotate(
|
||||
powerfeed_count=Count('powerfeeds')
|
||||
).order_by(*PowerPanel._meta.ordering)
|
||||
filterset = filters.PowerPanelFilterSet
|
||||
@ -2532,9 +2518,7 @@ class PowerPanelBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class PowerFeedListView(ObjectListView):
|
||||
queryset = PowerFeed.objects.prefetch_related(
|
||||
'power_panel', 'rack'
|
||||
)
|
||||
queryset = PowerFeed.objects.all()
|
||||
filterset = filters.PowerFeedFilterSet
|
||||
filterset_form = forms.PowerFeedFilterForm
|
||||
table = tables.PowerFeedTable
|
||||
|
@ -173,7 +173,7 @@ class ObjectConfigContextView(ObjectView):
|
||||
#
|
||||
|
||||
class ObjectChangeListView(ObjectListView):
|
||||
queryset = ObjectChange.objects.prefetch_related('user', 'changed_object_type')
|
||||
queryset = ObjectChange.objects.all()
|
||||
filterset = filters.ObjectChangeFilterSet
|
||||
filterset_form = forms.ObjectChangeFilterForm
|
||||
table = tables.ObjectChangeTable
|
||||
|
@ -25,7 +25,7 @@ from .utils import add_available_ipaddresses, add_available_prefixes, add_availa
|
||||
#
|
||||
|
||||
class VRFListView(ObjectListView):
|
||||
queryset = VRF.objects.prefetch_related('tenant')
|
||||
queryset = VRF.objects.all()
|
||||
filterset = filters.VRFFilterSet
|
||||
filterset_form = forms.VRFFilterForm
|
||||
table = tables.VRFTable
|
||||
@ -90,7 +90,7 @@ class VRFBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class RouteTargetListView(ObjectListView):
|
||||
queryset = RouteTarget.objects.prefetch_related('tenant')
|
||||
queryset = RouteTarget.objects.all()
|
||||
filterset = filters.RouteTargetFilterSet
|
||||
filterset_form = forms.RouteTargetFilterForm
|
||||
table = tables.RouteTargetTable
|
||||
@ -184,7 +184,7 @@ class RIRBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class AggregateListView(ObjectListView):
|
||||
queryset = Aggregate.objects.prefetch_related('rir').annotate(
|
||||
queryset = Aggregate.objects.annotate(
|
||||
child_count=RawSQL('SELECT COUNT(*) FROM ipam_prefix WHERE ipam_prefix.prefix <<= ipam_aggregate.prefix', ())
|
||||
).order_by(*Aggregate._meta.ordering)
|
||||
filterset = filters.AggregateFilterSet
|
||||
@ -320,7 +320,7 @@ class RoleBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class PrefixListView(ObjectListView):
|
||||
queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role').annotate_tree()
|
||||
queryset = Prefix.objects.annotate_tree()
|
||||
filterset = filters.PrefixFilterSet
|
||||
filterset_form = forms.PrefixFilterForm
|
||||
table = tables.PrefixDetailTable
|
||||
@ -494,9 +494,7 @@ class PrefixBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class IPAddressListView(ObjectListView):
|
||||
queryset = IPAddress.objects.prefetch_related(
|
||||
'vrf__tenant', 'tenant', 'nat_inside', 'assigned_object'
|
||||
)
|
||||
queryset = IPAddress.objects.all()
|
||||
filterset = filters.IPAddressFilterSet
|
||||
filterset_form = forms.IPAddressFilterForm
|
||||
table = tables.IPAddressDetailTable
|
||||
@ -653,7 +651,7 @@ class IPAddressBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class VLANGroupListView(ObjectListView):
|
||||
queryset = VLANGroup.objects.prefetch_related('site').annotate(
|
||||
queryset = VLANGroup.objects.annotate(
|
||||
vlan_count=Count('vlans')
|
||||
).order_by(*VLANGroup._meta.ordering)
|
||||
filterset = filters.VLANGroupFilterSet
|
||||
@ -728,9 +726,7 @@ class VLANGroupVLANsView(ObjectView):
|
||||
#
|
||||
|
||||
class VLANListView(ObjectListView):
|
||||
queryset = VLAN.objects.prefetch_related(
|
||||
'site', 'group', 'tenant', 'role', 'prefixes'
|
||||
)
|
||||
queryset = VLAN.objects.all()
|
||||
filterset = filters.VLANFilterSet
|
||||
filterset_form = forms.VLANFilterForm
|
||||
table = tables.VLANDetailTable
|
||||
@ -830,7 +826,7 @@ class VLANBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class ServiceListView(ObjectListView):
|
||||
queryset = Service.objects.prefetch_related('device', 'virtual_machine')
|
||||
queryset = Service.objects.all()
|
||||
filterset = filters.ServiceFilterSet
|
||||
filterset_form = forms.ServiceFilterForm
|
||||
table = tables.ServiceTable
|
||||
|
@ -58,7 +58,7 @@ class SecretRoleBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class SecretListView(ObjectListView):
|
||||
queryset = Secret.objects.prefetch_related('role', 'tags')
|
||||
queryset = Secret.objects.all()
|
||||
filterset = filters.SecretFilterSet
|
||||
filterset_form = forms.SecretFilterForm
|
||||
table = tables.SecretTable
|
||||
|
@ -58,7 +58,7 @@ class TenantGroupBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class TenantListView(ObjectListView):
|
||||
queryset = Tenant.objects.prefetch_related('group')
|
||||
queryset = Tenant.objects.all()
|
||||
filterset = filters.TenantFilterSet
|
||||
filterset_form = forms.TenantFilterForm
|
||||
table = tables.TenantTable
|
||||
|
@ -195,7 +195,8 @@ class ObjectListView(ObjectPermissionRequiredMixin, View):
|
||||
"""
|
||||
List a series of objects.
|
||||
|
||||
queryset: The queryset of objects to display
|
||||
queryset: The queryset of objects to display. Note: Prefetching related objects is not necessary, as the
|
||||
table will prefetch objects as needed depending on the columns being displayed.
|
||||
filter: A django-filter FilterSet that is applied to the queryset
|
||||
filter_form: The form used to render filter options
|
||||
table: The django-tables2 Table used to render the objects list
|
||||
|
@ -83,7 +83,7 @@ class ClusterGroupBulkDeleteView(BulkDeleteView):
|
||||
|
||||
class ClusterListView(ObjectListView):
|
||||
permission_required = 'virtualization.view_cluster'
|
||||
queryset = Cluster.objects.prefetch_related('type', 'group', 'site', 'tenant').annotate(
|
||||
queryset = Cluster.objects.annotate(
|
||||
device_count=get_subquery(Device, 'cluster'),
|
||||
vm_count=get_subquery(VirtualMachine, 'cluster')
|
||||
)
|
||||
@ -230,7 +230,7 @@ class ClusterRemoveDevicesView(ObjectEditView):
|
||||
#
|
||||
|
||||
class VirtualMachineListView(ObjectListView):
|
||||
queryset = VirtualMachine.objects.prefetch_related('cluster', 'tenant', 'role', 'primary_ip4', 'primary_ip6')
|
||||
queryset = VirtualMachine.objects.all()
|
||||
filterset = filters.VirtualMachineFilterSet
|
||||
filterset_form = forms.VirtualMachineFilterForm
|
||||
table = tables.VirtualMachineDetailTable
|
||||
@ -311,7 +311,7 @@ class VirtualMachineBulkDeleteView(BulkDeleteView):
|
||||
#
|
||||
|
||||
class VMInterfaceListView(ObjectListView):
|
||||
queryset = VMInterface.objects.prefetch_related('virtual_machine')
|
||||
queryset = VMInterface.objects.all()
|
||||
filterset = filters.VMInterfaceFilterSet
|
||||
filterset_form = forms.VMInterfaceFilterForm
|
||||
table = tables.VMInterfaceTable
|
||||
|
Reference in New Issue
Block a user