Tweak querysets to work with restriction

This commit is contained in:
Jeremy Stretch 2020-06-29 10:57:09 -04:00
parent 6ab4640cdc
commit ce55d0c791
2 changed files with 6 additions and 3 deletions

View File

@ -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 django.shortcuts import get_object_or_404
from rest_framework.decorators import action from rest_framework.decorators import action
from rest_framework.response import Response from rest_framework.response import Response
@ -52,7 +52,10 @@ class CircuitTypeViewSet(ModelViewSet):
class CircuitViewSet(CustomFieldModelViewSet): class CircuitViewSet(CustomFieldModelViewSet):
queryset = Circuit.objects.prefetch_related( 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') ).prefetch_related('tags')
serializer_class = serializers.CircuitSerializer serializer_class = serializers.CircuitSerializer
filterset_class = filters.CircuitFilterSet filterset_class = filters.CircuitFilterSet

View File

@ -239,7 +239,7 @@ class Circuit(ChangeLoggedModel, CustomFieldModel):
return self.STATUS_CLASS_MAP.get(self.status) return self.STATUS_CLASS_MAP.get(self.status)
def _get_termination(self, side): def _get_termination(self, side):
for ct in self.terminations.all(): for ct in self.terminations.unrestricted():
if ct.term_side == side: if ct.term_side == side:
return ct return ct
return None return None