diff options
author | Stephen Finucane <stephen@that.guru> | 2018-09-12 15:57:39 -0600 |
---|---|---|
committer | Stephen Finucane <stephen@that.guru> | 2018-09-19 22:48:09 +0100 |
commit | b832aa43a8e29e52359dd51c17f77d09dae1fec4 (patch) | |
tree | a678abbd31eab979d9169dde729b2f4d40753d16 | |
parent | e80216a96eac6b1f1ed10aa9effd1d3120f2c3a1 (diff) | |
download | patchwork-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.py | 5 |
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) |