Răsfoiți Sursa

Tweak querysets to work with restriction

Jeremy Stretch 5 ani în urmă
părinte
comite
ce55d0c791
2 a modificat fișierele cu 6 adăugiri și 3 ștergeri
  1. 5 2
      netbox/circuits/api/views.py
  2. 1 1
      netbox/circuits/models.py

+ 5 - 2
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

+ 1 - 1
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