aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Finucane <stephen@that.guru>2018-09-12 15:57:39 -0600
committerStephen Finucane <stephen@that.guru>2018-09-19 22:48:09 +0100
commitb832aa43a8e29e52359dd51c17f77d09dae1fec4 (patch)
treea678abbd31eab979d9169dde729b2f4d40753d16
parente80216a96eac6b1f1ed10aa9effd1d3120f2c3a1 (diff)
downloadpatchwork-b832aa43a8e29e52359dd51c17f77d09dae1fec4.tar
patchwork-b832aa43a8e29e52359dd51c17f77d09dae1fec4.tar.gz
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 <stephen@that.guru>
-rw-r--r--patchwork/admin.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/patchwork/admin.py b/patchwork/admin.py
index c70d106..f12b338 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)