From f64b09201242bccde6a415eba61cc7d4b4b16f3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Kucharczyk?= Date: Sun, 21 Jun 2026 14:20:14 +0200 Subject: [PATCH] perf(purchases): select_related(platform) on list_purchases (#68) Final-review follow-up: LinkedPurchase reads purchase.platform per row; eager-load it alongside the games prefetch to remove the residual N+1. Co-Authored-By: Claude Opus 4.8 --- games/views/purchase.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/games/views/purchase.py b/games/views/purchase.py index cac0ee0..07c8186 100644 --- a/games/views/purchase.py +++ b/games/views/purchase.py @@ -125,7 +125,9 @@ def _render_purchase_row(purchase): @login_required def list_purchases(request: HttpRequest) -> HttpResponse: - purchases = Purchase.objects.prefetch_related("games", "games__platform") + purchases = Purchase.objects.select_related("platform").prefetch_related( + "games", "games__platform" + ) filter_json = request.GET.get("filter", "") if filter_json: