summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
Diffstat (limited to 'django')
-rw-r--r--django/contrib/admin/sites.py18
1 files changed, 8 insertions, 10 deletions
diff --git a/django/contrib/admin/sites.py b/django/contrib/admin/sites.py
index c8870924e7..47a25608fe 100644
--- a/django/contrib/admin/sites.py
+++ b/django/contrib/admin/sites.py
@@ -526,16 +526,14 @@ class AdminSite:
"models": [model_dict],
}
- if label:
- return app_dict.get(label)
return app_dict
- def get_app_list(self, request):
+ def get_app_list(self, request, app_label=None):
"""
Return a sorted list of all the installed apps that have been
registered in this site.
"""
- app_dict = self._build_app_dict(request)
+ app_dict = self._build_app_dict(request, app_label)
# Sort the apps alphabetically.
app_list = sorted(app_dict.values(), key=lambda x: x["name"].lower())
@@ -568,16 +566,16 @@ class AdminSite:
)
def app_index(self, request, app_label, extra_context=None):
- app_dict = self._build_app_dict(request, app_label)
- if not app_dict:
+ app_list = self.get_app_list(request, app_label)
+
+ if not app_list:
raise Http404("The requested admin page does not exist.")
- # Sort the models alphabetically within each app.
- app_dict["models"].sort(key=lambda x: x["name"])
+
context = {
**self.each_context(request),
- "title": _("%(app)s administration") % {"app": app_dict["name"]},
+ "title": _("%(app)s administration") % {"app": app_list[0]["name"]},
"subtitle": None,
- "app_list": [app_dict],
+ "app_list": app_list,
"app_label": app_label,
**(extra_context or {}),
}