diff --git a/netbox/circuits/api/views.py b/netbox/circuits/api/views.py index 4aad07011..1575a181b 100644 --- a/netbox/circuits/api/views.py +++ b/netbox/circuits/api/views.py @@ -1,4 +1,4 @@ -from django.db.models import Count +from django.db.models import Count, Prefetch from django.shortcuts import get_object_or_404 from rest_framework.decorators import action from rest_framework.response import Response @@ -52,7 +52,10 @@ class CircuitTypeViewSet(ModelViewSet): class CircuitViewSet(CustomFieldModelViewSet): queryset = Circuit.objects.prefetch_related( - 'type', 'tenant', 'provider', 'terminations__site', 'terminations__connected_endpoint__device' + Prefetch('terminations', queryset=CircuitTermination.objects.unrestricted().prefetch_related( + 'site', 'connected_endpoint__device' + )), + 'type', 'tenant', 'provider', ).prefetch_related('tags') serializer_class = serializers.CircuitSerializer filterset_class = filters.CircuitFilterSet diff --git a/netbox/circuits/models.py b/netbox/circuits/models.py index dcf1c5118..72d1c0974 100644 --- a/netbox/circuits/models.py +++ b/netbox/circuits/models.py @@ -239,7 +239,7 @@ class Circuit(ChangeLoggedModel, CustomFieldModel): return self.STATUS_CLASS_MAP.get(self.status) def _get_termination(self, side): - for ct in self.terminations.all(): + for ct in self.terminations.unrestricted(): if ct.term_side == side: return ct return None