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

Added '*_count' fields for child objects

This commit is contained in:
Jeremy Stretch
2019-04-19 16:50:42 -04:00
parent f4bbdf30e8
commit 017a5011ec
8 changed files with 73 additions and 24 deletions

View File

@ -1,8 +1,9 @@
from django.db.models import Count
from dcim.models import Interface
from dcim.models import Device, Interface
from extras.api.views import CustomFieldModelViewSet
from utilities.api import FieldChoicesViewSet, ModelViewSet
from utilities.utils import get_subquery
from virtualization import filters
from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine
from . import serializers
@ -39,8 +40,13 @@ class ClusterGroupViewSet(ModelViewSet):
class ClusterViewSet(CustomFieldModelViewSet):
queryset = Cluster.objects.select_related('type', 'group').prefetch_related('tags').annotate(
virtualmachine_count=Count('virtual_machines')
queryset = Cluster.objects.select_related(
'type', 'group', 'site',
).prefetch_related(
'tags'
).annotate(
device_count=get_subquery(Device, 'cluster'),
virtualmachine_count=get_subquery(VirtualMachine, 'cluster')
)
serializer_class = serializers.ClusterSerializer
filterset_class = filters.ClusterFilter