diff --git a/netbox/circuits/views.py b/netbox/circuits/views.py index e2dc80816..55ff70327 100644 --- a/netbox/circuits/views.py +++ b/netbox/circuits/views.py @@ -1,7 +1,7 @@ from django.conf import settings from django.contrib import messages from django.db import transaction -from django.db.models import Count, OuterRef +from django.db.models import Count, Prefetch from django.shortcuts import get_object_or_404, redirect, render from django_tables2 import RequestConfig @@ -119,9 +119,9 @@ class CircuitTypeBulkDeleteView(BulkDeleteView): # class CircuitListView(ObjectListView): - _terminations = CircuitTermination.objects.filter(circuit=OuterRef('pk')) queryset = Circuit.objects.prefetch_related( - 'provider', 'type', 'tenant', 'terminations__site' + Prefetch('terminations', CircuitTermination.objects.unrestricted()), + 'provider', 'type', 'tenant' ).annotate_sites() filterset = filters.CircuitFilterSet filterset_form = forms.CircuitFilterForm @@ -174,14 +174,20 @@ class CircuitBulkImportView(BulkImportView): class CircuitBulkEditView(BulkEditView): - queryset = Circuit.objects.prefetch_related('provider', 'type', 'tenant').prefetch_related('terminations__site') + queryset = Circuit.objects.prefetch_related( + Prefetch('terminations', CircuitTermination.objects.unrestricted()), + 'provider', 'type', 'tenant' + ) filterset = filters.CircuitFilterSet table = tables.CircuitTable form = forms.CircuitBulkEditForm class CircuitBulkDeleteView(BulkDeleteView): - queryset = Circuit.objects.prefetch_related('provider', 'type', 'tenant').prefetch_related('terminations__site') + queryset = Circuit.objects.prefetch_related( + Prefetch('terminations', CircuitTermination.objects.unrestricted()), + 'provider', 'type', 'tenant' + ) filterset = filters.CircuitFilterSet table = tables.CircuitTable