1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Use unrestricted querysets for prefetching related objects

This commit is contained in:
Jeremy Stretch
2020-07-07 15:45:46 -04:00
parent 25e1319864
commit 353d88f0a6

View File

@ -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