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

Prefetch tagged VLANs for VMInterfaces

This commit is contained in:
Jeremy Stretch
2020-06-29 12:18:59 -04:00
parent 617e20af0b
commit 9ea4f82eaa

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
@ -7,6 +7,7 @@ from dcim.models import Device
from extras.api.serializers import RenderedGraphSerializer from extras.api.serializers import RenderedGraphSerializer
from extras.api.views import CustomFieldModelViewSet from extras.api.views import CustomFieldModelViewSet
from extras.models import Graph from extras.models import Graph
from ipam.models import VLAN
from utilities.api import ModelViewSet from utilities.api import ModelViewSet
from utilities.utils import get_subquery from utilities.utils import get_subquery
from virtualization import filters from virtualization import filters
@ -80,6 +81,7 @@ class VMInterfaceViewSet(ModelViewSet):
queryset = VMInterface.objects.filter( queryset = VMInterface.objects.filter(
virtual_machine__isnull=False virtual_machine__isnull=False
).prefetch_related( ).prefetch_related(
Prefetch('tagged_vlans', queryset=VLAN.objects.unrestricted()),
'virtual_machine', 'tags' 'virtual_machine', 'tags'
) )
serializer_class = serializers.VMInterfaceSerializer serializer_class = serializers.VMInterfaceSerializer