diff --git a/netbox/virtualization/api/serializers.py b/netbox/virtualization/api/serializers.py index f4e0d5e5c..9dff223d3 100644 --- a/netbox/virtualization/api/serializers.py +++ b/netbox/virtualization/api/serializers.py @@ -92,6 +92,7 @@ class VirtualMachineIPAddressSerializer(WritableNestedSerializer): class VirtualMachineSerializer(TaggitSerializer, CustomFieldModelSerializer): status = ChoiceField(choices=VM_STATUS_CHOICES, required=False) + site = NestedSiteSerializer(read_only=True) cluster = NestedClusterSerializer(required=False, allow_null=True) role = NestedDeviceRoleSerializer(required=False, allow_null=True) tenant = NestedTenantSerializer(required=False, allow_null=True) @@ -104,8 +105,8 @@ class VirtualMachineSerializer(TaggitSerializer, CustomFieldModelSerializer): class Meta: model = VirtualMachine fields = [ - 'id', 'name', 'status', 'cluster', 'role', 'tenant', 'platform', 'primary_ip', 'primary_ip4', 'primary_ip6', - 'vcpus', 'memory', 'disk', 'comments', 'tags', 'custom_fields', 'created', 'last_updated', + 'id', 'name', 'status', 'site', 'cluster', 'role', 'tenant', 'platform', 'primary_ip', 'primary_ip4', + 'primary_ip6', 'vcpus', 'memory', 'disk', 'comments', 'tags', 'custom_fields', 'created', 'last_updated', ] diff --git a/netbox/virtualization/api/views.py b/netbox/virtualization/api/views.py index 01b8792c8..c20b8091e 100644 --- a/netbox/virtualization/api/views.py +++ b/netbox/virtualization/api/views.py @@ -45,7 +45,9 @@ class ClusterViewSet(CustomFieldModelViewSet): # class VirtualMachineViewSet(CustomFieldModelViewSet): - queryset = VirtualMachine.objects.all() + queryset = VirtualMachine.objects.select_related( + 'cluster__site', 'role', 'tenant', 'platform', 'primary_ip4', 'primary_ip6' + ) filter_class = filters.VirtualMachineFilter def get_serializer_class(self):