From 3d189ba71100c3f165d7c453ff2b8f90a5dbf5ef Mon Sep 17 00:00:00 2001 From: Todd Dembrey <todd.dembrey@torchbox.com> Date: Fri, 31 Aug 2018 13:41:15 +0100 Subject: [PATCH] Improve performance on related tags --- opentech/public/news/models.py | 5 ++++- opentech/public/people/models.py | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/opentech/public/news/models.py b/opentech/public/news/models.py index d57f6f118..dbb645c76 100644 --- a/opentech/public/news/models.py +++ b/opentech/public/news/models.py @@ -131,7 +131,10 @@ class NewsIndex(BasePage): def get_context(self, request, *args, **kwargs): news = NewsPage.objects.live().public().descendant_of(self).annotate( date=Coalesce('publication_date', 'first_published_at') - ).order_by('-date') + ).order_by('-date').prefetch_related( + 'news_types__news_type', + 'authors__author', + ) if request.GET.get('news_type'): news = news.filter(news_types__news_type=request.GET.get('news_type')) diff --git a/opentech/public/people/models.py b/opentech/public/people/models.py index dd43e3b57..ceea639ad 100644 --- a/opentech/public/people/models.py +++ b/opentech/public/people/models.py @@ -172,7 +172,13 @@ class PersonIndexPage(BasePage): parent_page_types = ['standardpages.IndexPage'] def get_context(self, request, *args, **kwargs): - people = PersonPage.objects.live().public().descendant_of(self).order_by('title') + people = PersonPage.objects.live().public().descendant_of(self).order_by( + 'title', + ).select_related( + 'photo', + ).prefetch_related( + 'person_types__person_type', + ) if request.GET.get('person_type'): people = people.filter(person_types__person_type=request.GET.get('person_type')) -- GitLab