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:
@ -1,7 +1,7 @@
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.db import transaction
|
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.shortcuts import get_object_or_404, redirect, render
|
||||||
from django_tables2 import RequestConfig
|
from django_tables2 import RequestConfig
|
||||||
|
|
||||||
@ -119,9 +119,9 @@ class CircuitTypeBulkDeleteView(BulkDeleteView):
|
|||||||
#
|
#
|
||||||
|
|
||||||
class CircuitListView(ObjectListView):
|
class CircuitListView(ObjectListView):
|
||||||
_terminations = CircuitTermination.objects.filter(circuit=OuterRef('pk'))
|
|
||||||
queryset = Circuit.objects.prefetch_related(
|
queryset = Circuit.objects.prefetch_related(
|
||||||
'provider', 'type', 'tenant', 'terminations__site'
|
Prefetch('terminations', CircuitTermination.objects.unrestricted()),
|
||||||
|
'provider', 'type', 'tenant'
|
||||||
).annotate_sites()
|
).annotate_sites()
|
||||||
filterset = filters.CircuitFilterSet
|
filterset = filters.CircuitFilterSet
|
||||||
filterset_form = forms.CircuitFilterForm
|
filterset_form = forms.CircuitFilterForm
|
||||||
@ -174,14 +174,20 @@ class CircuitBulkImportView(BulkImportView):
|
|||||||
|
|
||||||
|
|
||||||
class CircuitBulkEditView(BulkEditView):
|
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
|
filterset = filters.CircuitFilterSet
|
||||||
table = tables.CircuitTable
|
table = tables.CircuitTable
|
||||||
form = forms.CircuitBulkEditForm
|
form = forms.CircuitBulkEditForm
|
||||||
|
|
||||||
|
|
||||||
class CircuitBulkDeleteView(BulkDeleteView):
|
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
|
filterset = filters.CircuitFilterSet
|
||||||
table = tables.CircuitTable
|
table = tables.CircuitTable
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user