summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaffaele Salmaso <raffaele@salmaso.org>2020-09-22 10:46:27 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-05-13 06:57:09 +0200
commit3733ae895780f17430924f1e20ee320556c62d05 (patch)
treecf4757b5e6ce5b5fda0ebad586cc35a69c5e9446
parent0456d3e42795481a186db05719300691fe2a1029 (diff)
Fixed #32031 -- Added model class for each model to AdminSite.each_context().
-rw-r--r--django/contrib/admin/sites.py1
-rw-r--r--docs/ref/contrib/admin/index.txt5
-rw-r--r--docs/releases/4.0.txt3
-rw-r--r--tests/admin_views/test_adminsite.py5
4 files changed, 13 insertions, 1 deletions
diff --git a/django/contrib/admin/sites.py b/django/contrib/admin/sites.py
index 837dabfea8..59a4a0364d 100644
--- a/django/contrib/admin/sites.py
+++ b/django/contrib/admin/sites.py
@@ -461,6 +461,7 @@ class AdminSite:
info = (app_label, model._meta.model_name)
model_dict = {
+ 'model': model,
'name': capfirst(model._meta.verbose_name_plural),
'object_name': model._meta.object_name,
'perms': perms,
diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt
index 8da7a72f10..2e99c498e9 100644
--- a/docs/ref/contrib/admin/index.txt
+++ b/docs/ref/contrib/admin/index.txt
@@ -3025,6 +3025,7 @@ Templates can override or extend base admin templates as described in
Each model is a dict with the following keys:
+ * ``model``: the model class
* ``object_name``: class name of the model
* ``name``: plural name of the model
* ``perms``: a ``dict`` tracking ``add``, ``change``, ``delete``, and
@@ -3032,6 +3033,10 @@ Templates can override or extend base admin templates as described in
* ``admin_url``: admin changelist URL for the model
* ``add_url``: admin URL to add a new model instance
+ .. versionchanged:: 4.0
+
+ The ``model`` variable for each model was added.
+
.. method:: AdminSite.has_permission(request)
Returns ``True`` if the user for the given ``HttpRequest`` has permission
diff --git a/docs/releases/4.0.txt b/docs/releases/4.0.txt
index fdd4b6c39b..3168200070 100644
--- a/docs/releases/4.0.txt
+++ b/docs/releases/4.0.txt
@@ -72,6 +72,9 @@ Minor features
* The navigation sidebar now has a quick filter toolbar.
+* The new context variable ``model`` which contains the model class for each
+ model is added to the :meth:`.AdminSite.each_context` method.
+
:mod:`django.contrib.admindocs`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/tests/admin_views/test_adminsite.py b/tests/admin_views/test_adminsite.py
index efee6f39c6..4874bc48c8 100644
--- a/tests/admin_views/test_adminsite.py
+++ b/tests/admin_views/test_adminsite.py
@@ -55,7 +55,9 @@ class SiteEachContextTest(TestCase):
admin_views = apps[0]
self.assertEqual(admin_views['app_label'], 'admin_views')
self.assertEqual(len(admin_views['models']), 1)
- self.assertEqual(admin_views['models'][0]['object_name'], 'Article')
+ article = admin_views['models'][0]
+ self.assertEqual(article['object_name'], 'Article')
+ self.assertEqual(article['model'], Article)
# auth.User
auth = apps[1]
@@ -63,6 +65,7 @@ class SiteEachContextTest(TestCase):
self.assertEqual(len(auth['models']), 1)
user = auth['models'][0]
self.assertEqual(user['object_name'], 'User')
+ self.assertEqual(user['model'], User)
self.assertEqual(auth['app_url'], '/test_admin/admin/auth/')
self.assertIs(auth['has_module_perms'], True)