From: Stephen Finucane Date: Wed, 12 Sep 2018 21:57:39 +0000 (-0600) Subject: admin: Configure 'list_select_related', 'get_queryset' X-Git-Tag: v2.2.0-rc1~276 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b832aa43a8e29e52359dd51c17f77d09dae1fec4;p=thirdparty%2Fpatchwork.git admin: Configure 'list_select_related', 'get_queryset' This has a significant improvement for the patch and series views. /patchwork/patch FROM: ~114 queries TO: ~14 queries /patchwork/series FROM: ~210 queries TO: ~10 queries Signed-off-by: Stephen Finucane --- diff --git a/patchwork/admin.py b/patchwork/admin.py index c70d106e..f12b3387 100644 --- a/patchwork/admin.py +++ b/patchwork/admin.py @@ -89,6 +89,7 @@ class PatchAdmin(admin.ModelAdmin): list_display = ('name', 'submitter', 'project', 'state', 'date', 'archived', 'is_pull_request') list_filter = ('project', 'state', 'archived') + list_select_related = ('submitter', 'project', 'state') search_fields = ('name', 'submitter__name', 'submitter__email') date_hierarchy = 'date' @@ -129,6 +130,10 @@ class SeriesAdmin(admin.ModelAdmin): return series.received_all received_all.boolean = True + def get_queryset(self, request): + qs = super(SeriesAdmin, self).get_queryset(request) + return qs.prefetch_related('patches',) + admin.site.register(Series, SeriesAdmin)