diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py index 961b1b58c3e..2b43c82f817 100644 --- a/addons/website/controllers/main.py +++ b/addons/website/controllers/main.py @@ -73,7 +73,8 @@ class Website(Home): # prefetch all menus (it will prefetch website.page too) top_menu = request.website.menu_id - homepage = request.website.homepage_id + homepage_id = request.website._get_cached('homepage_id') + homepage = homepage_id and request.env['website.page'].browse(homepage_id) if homepage and (homepage.sudo().is_visible or request.env.user.has_group('base.group_user')) and homepage.url != '/': return request.env['ir.http'].reroute(homepage.url) diff --git a/addons/website/models/website.py b/addons/website/models/website.py index 09b28fb4f79..da0ac5d86b1 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -1350,6 +1350,7 @@ class Website(models.Model): 'user_id': self.user_id.id, 'company_id': self.company_id.id, 'default_lang_id': self.default_lang_id.id, + 'homepage_id': self.homepage_id.id, } def _get_cached(self, field): diff --git a/addons/website/tests/test_performance.py b/addons/website/tests/test_performance.py index b78caab7cee..47cc12c7711 100644 --- a/addons/website/tests/test_performance.py +++ b/addons/website/tests/test_performance.py @@ -109,7 +109,7 @@ class TestWebsitePerformance(UtilPerf): def test_20_perf_sql_queries_homepage(self): # homepage "/" has its own controller - self.assertEqual(self._get_url_hot_query('/'), 13) + self.assertEqual(self._get_url_hot_query('/'), 12) self.assertEqual(self._get_url_hot_query('/', cache=False), 15) def test_30_perf_sql_queries_page_no_layout(self):