From 7a56bcecb76cc5070222101b24fbb16018b9c88b Mon Sep 17 00:00:00 2001 From: vasileios Date: Thu, 6 Feb 2025 13:24:14 +0100 Subject: [PATCH] [#5077] Improved queryset for logic-rules and variables list actions Had to apply prefetch here as too many queries (n+1) were taking place for the variables and logic-rules list endpoints and affected the performance. --- src/openforms/forms/api/viewsets.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/openforms/forms/api/viewsets.py b/src/openforms/forms/api/viewsets.py index 14603385c9..c046a72634 100644 --- a/src/openforms/forms/api/viewsets.py +++ b/src/openforms/forms/api/viewsets.py @@ -531,7 +531,7 @@ def variables_list(self, request, *args, **kwargs): form = self.get_object() filterset = FormVariableFilter( request.GET, - queryset=form.formvariable_set.select_related("form", "form_definition"), + queryset=form.formvariable_set.prefetch_related("form", "form_definition"), ) serializer = FormVariableSerializer( @@ -590,7 +590,10 @@ def logic_rules_bulk_update(self, request, *args, **kwargs): @logic_rules_bulk_update.mapping.get def logic_rules_list(self, request, *args, **kwargs): form = self.get_object() - logic_rules = form.formlogic_set.all() + + logic_rules = form.formlogic_set.prefetch_related( + "form", "trigger_from_step__form" + ) serializer = FormLogicSerializer( instance=logic_rules,