From bf79ca30bbf73c9afb274187df13692ad218f9a3 Mon Sep 17 00:00:00 2001 From: wh1te909 Date: Fri, 7 Apr 2023 16:55:29 +0000 Subject: [PATCH] optimize query --- api/tacticalrmm/agents/views.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/api/tacticalrmm/agents/views.py b/api/tacticalrmm/agents/views.py index 5ecbf055..43c71d68 100644 --- a/api/tacticalrmm/agents/views.py +++ b/api/tacticalrmm/agents/views.py @@ -187,7 +187,33 @@ class GetUpdateDeleteAgent(APIView): # get agent details def get(self, request, agent_id): - agent = get_object_or_404(Agent, agent_id=agent_id) + from checks.models import Check, CheckResult + + # agent = get_object_or_404(Agent, agent_id=agent_id) + agent = get_object_or_404( + Agent.objects.select_related( + "site__server_policy", + "site__workstation_policy", + "site__client__server_policy", + "site__client__workstation_policy", + "policy", + "alert_template", + ).prefetch_related( + Prefetch( + "agentchecks", + queryset=Check.objects.select_related("script"), + ), + Prefetch( + "checkresults", + queryset=CheckResult.objects.select_related("assigned_check"), + ), + Prefetch( + "custom_fields", + queryset=AgentCustomField.objects.select_related("field"), + ), + ), + agent_id=agent_id, + ) return Response(AgentSerializer(agent).data) # edit agent