不修改Django源码让admin中的Model列表按注册顺序显示
from django.contrib import admin
from django.utils.text import capfirst
from django.utils.datastructures import OrderedDict
def find_model_index(name):
count = 0
for model, model_admin in admin.site._registry.items():
if capfirst(model._meta.verbose_name_plural) == name:
return count
else:
count += 1
return count
def index_decorator(func):
def inner(*args, **kwargs):
templateresponse = func(*args, **kwargs)
for app in templateresponse.context_data['app_list']:
app['models'].sort(key=lambda x: find_model_index(x['name']))
return templateresponse
return inner
# registry = OrderedDict()
# registry.update(admin.site._registry)
# admin.site._registry = registry
admin.site.index = index_decorator(ad