From 0dfe88eaba551ab3ecec9a573d59e8d2fa3a8f94 Mon Sep 17 00:00:00 2001 From: Zain Patel Date: Sat, 24 Apr 2021 01:50:27 +0100 Subject: [PATCH] [3.2.x] Fixed #32681 -- Fixed VariableDoesNotExist when rendering some admin template. Regression in 84609b3205905097d7d3038d32e6101f012c0619. Backport of 4e5bbb6ef2287126badd32842b239f4a8a7394ca from main. --- AUTHORS | 1 + django/contrib/admin/options.py | 2 ++ django/contrib/admin/sites.py | 2 ++ docs/releases/3.2.1.txt | 3 +++ tests/admin_views/tests.py | 13 +++++++++++++ 5 files changed, 21 insertions(+) diff --git a/AUTHORS b/AUTHORS index 61733514098..256118ae546 100644 --- a/AUTHORS +++ b/AUTHORS @@ -979,6 +979,7 @@ answer newbie questions, and generally made Django that much better: Zach Liu Zach Thompson Zain Memon + Zain Patel Zak Johnson Žan Anderle Zbigniew Siciarz diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index b286466fb5e..c38901e874f 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -1890,6 +1890,7 @@ class ModelAdmin(BaseModelAdmin): context = { **self.admin_site.each_context(request), 'title': title, + 'subtitle': None, 'object_name': object_name, 'object': obj, 'deleted_objects': deleted_objects, @@ -1930,6 +1931,7 @@ class ModelAdmin(BaseModelAdmin): context = { **self.admin_site.each_context(request), 'title': _('Change history: %s') % obj, + 'subtitle': None, 'action_list': action_list, 'module_name': str(capfirst(opts.verbose_name_plural)), 'object': obj, diff --git a/django/contrib/admin/sites.py b/django/contrib/admin/sites.py index 600944ebc02..728e1cbf5e4 100644 --- a/django/contrib/admin/sites.py +++ b/django/contrib/admin/sites.py @@ -525,6 +525,7 @@ class AdminSite: context = { **self.each_context(request), 'title': self.index_title, + 'subtitle': None, 'app_list': app_list, **(extra_context or {}), } @@ -542,6 +543,7 @@ class AdminSite: context = { **self.each_context(request), 'title': _('%(app)s administration') % {'app': app_dict['name']}, + 'subtitle': None, 'app_list': [app_dict], 'app_label': app_label, **(extra_context or {}), diff --git a/docs/releases/3.2.1.txt b/docs/releases/3.2.1.txt index 07d449ae8da..f99dacac0c5 100644 --- a/docs/releases/3.2.1.txt +++ b/docs/releases/3.2.1.txt @@ -56,3 +56,6 @@ Bugfixes with subqueries that began manifesting in Django 3.2, due to a separate fix using ``Exists`` to ``exclude()`` multi-valued relationships (:ticket:`32650`). + +* Fixed a bug in Django 3.2 where variable lookup errors were logged when + rendering some admin templates (:ticket:`32681`). diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index ad47c504c16..29b22834470 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -1117,6 +1117,19 @@ class AdminViewBasicTest(AdminViewBasicTestCase): self.assertContains(response, '

View article

') self.assertContains(response, '

Article 2

') + def test_render_views_no_subtitle(self): + tests = [ + reverse('admin:index'), + reverse('admin:app_list', args=('admin_views',)), + reverse('admin:admin_views_article_delete', args=(self.a1.pk,)), + reverse('admin:admin_views_article_history', args=(self.a1.pk,)), + ] + for url in tests: + with self.subTest(url=url): + with self.assertRaisesMessage(AssertionError, 'no logs'): + with self.assertLogs('django.template', 'DEBUG'): + self.client.get(url) + @override_settings(TEMPLATES=[{ 'BACKEND': 'django.template.backends.django.DjangoTemplates',