Message ID | 20180912215739.22074-1-stephen@that.guru |
---|---|
State | Accepted |
Headers | show |
Series | admin: Configure 'list_select_related', 'get_queryset' | expand |
On Wed, 2018-09-12 at 15:57 -0600, Stephen Finucane wrote: > 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> This is an easy win and is currently annoying me, so I've gone ahead and applied it. Stephen
diff --git a/patchwork/admin.py b/patchwork/admin.py index 133872ac..1a2c0370 100644 --- a/patchwork/admin.py +++ b/patchwork/admin.py @@ -105,6 +105,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' @@ -145,6 +146,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)