diff --git a/admin_reorder/middleware.py b/admin_reorder/middleware.py index af48067..9dd9ff9 100644 --- a/admin_reorder/middleware.py +++ b/admin_reorder/middleware.py @@ -1,4 +1,5 @@ from copy import deepcopy +from importlib import import_module from django.conf import settings from django.contrib import admin @@ -12,6 +13,14 @@ def init_config(self, request, app_list): self.request = request self.app_list = app_list + admin_site_name = getattr(settings, 'ADMIN_REORDER_SITE', None) + if admin_site_name: + module_name, site_name = admin_site_name.rsplit('.', 1) + module = import_module(module_name) + self.admin_site = getattr(module, site_name) + else: + self.admin_site = admin.site + self.config = getattr(settings, 'ADMIN_REORDER', None) if not self.config: # ADMIN_REORDER settings is not defined. @@ -22,7 +31,7 @@ def init_config(self, request, app_list): 'ADMIN_REORDER config parameter must be tuple or list. ' 'Got {config}'.format(config=self.config)) - admin_index = admin.site.index(request) + admin_index = self.admin_site.index(request) try: # try to get all installed models app_list = admin_index.context_data['app_list']