|
@@ -594,7 +594,11 @@ class PrefixBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
|
|
|
|
|
|
|
|
class IPAddressListView(ObjectListView):
|
|
|
- queryset = IPAddress.objects.select_related('vrf__tenant', 'tenant', 'interface__device', 'nat_inside')
|
|
|
+ queryset = IPAddress.objects.select_related(
|
|
|
+ 'vrf__tenant', 'tenant', 'nat_inside'
|
|
|
+ ).prefetch_related(
|
|
|
+ 'interface__device'
|
|
|
+ )
|
|
|
filter = filters.IPAddressFilter
|
|
|
filter_form = forms.IPAddressFilterForm
|
|
|
table = tables.IPAddressDetailTable
|
|
@@ -605,7 +609,7 @@ class IPAddressView(View):
|
|
|
|
|
|
def get(self, request, pk):
|
|
|
|
|
|
- ipaddress = get_object_or_404(IPAddress.objects.select_related('interface__device'), pk=pk)
|
|
|
+ ipaddress = get_object_or_404(IPAddress.objects.select_related('vrf__tenant', 'tenant'), pk=pk)
|
|
|
|
|
|
|
|
|
parent_prefixes = Prefix.objects.filter(
|
|
@@ -622,12 +626,14 @@ class IPAddressView(View):
|
|
|
).exclude(
|
|
|
pk=ipaddress.pk
|
|
|
).select_related(
|
|
|
- 'interface__device', 'nat_inside'
|
|
|
+ 'nat_inside'
|
|
|
+ ).prefetch_related(
|
|
|
+ 'interface__device'
|
|
|
)
|
|
|
duplicate_ips_table = tables.IPAddressTable(list(duplicate_ips), orderable=False)
|
|
|
|
|
|
|
|
|
- related_ips = IPAddress.objects.select_related(
|
|
|
+ related_ips = IPAddress.objects.prefetch_related(
|
|
|
'interface__device'
|
|
|
).exclude(
|
|
|
address=str(ipaddress.address)
|
|
@@ -681,7 +687,7 @@ class IPAddressBulkImportView(PermissionRequiredMixin, BulkImportView):
|
|
|
class IPAddressBulkEditView(PermissionRequiredMixin, BulkEditView):
|
|
|
permission_required = 'ipam.change_ipaddress'
|
|
|
cls = IPAddress
|
|
|
- queryset = IPAddress.objects.select_related('vrf__tenant', 'tenant', 'interface__device')
|
|
|
+ queryset = IPAddress.objects.select_related('vrf__tenant', 'tenant').prefetch_related('interface__device')
|
|
|
filter = filters.IPAddressFilter
|
|
|
table = tables.IPAddressTable
|
|
|
form = forms.IPAddressBulkEditForm
|
|
@@ -691,7 +697,7 @@ class IPAddressBulkEditView(PermissionRequiredMixin, BulkEditView):
|
|
|
class IPAddressBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
|
|
permission_required = 'ipam.delete_ipaddress'
|
|
|
cls = IPAddress
|
|
|
- queryset = IPAddress.objects.select_related('vrf__tenant', 'tenant', 'interface__device')
|
|
|
+ queryset = IPAddress.objects.select_related('vrf__tenant', 'tenant').prefetch_related('interface__device')
|
|
|
filter = filters.IPAddressFilter
|
|
|
table = tables.IPAddressTable
|
|
|
default_return_url = 'ipam:ipaddress_list'
|