From c5ede326498d8d835c6caf1700d9ae0ec7187b91 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Mon, 11 Dec 2023 13:02:40 +0100 Subject: [PATCH] API: Prefetch customer in order list view (#3768) Before this change, each order row needed an additional database query just to resolve the customer id (integer) to customer identifier (string). With this change, django does a database JOIN. --- src/pretix/api/views/order.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pretix/api/views/order.py b/src/pretix/api/views/order.py index f0e69022d..de5b5ae89 100644 --- a/src/pretix/api/views/order.py +++ b/src/pretix/api/views/order.py @@ -222,6 +222,8 @@ class OrderViewSetMixin: qs = qs.prefetch_related('refunds', 'refunds__payment') if 'invoice_address' not in self.request.GET.getlist('exclude'): qs = qs.select_related('invoice_address') + if 'customer' not in self.request.GET.getlist('exclude'): + qs = qs.select_related('customer') qs = qs.prefetch_related(self._positions_prefetch(self.request)) return qs