求助:django-modeladmin-reorder无法生效于Django Admin侧边导航栏
解决Django Admin侧边导航栏模型分组排序问题
1. 核对django-modeladmin-reorder配置完整性
确保settings.py中的MODELADMIN_REORDER配置覆盖所有需要调整的应用和模型(包括第三方库模型),示例配置如下:
MODELADMIN_REORDER = ( # 自定义业务分组 {'app': 'myapp', 'label': '核心业务模块', 'models': ( 'myapp.Order', 'myapp.Customer', )}, # 权限管理分组 {'app': 'auth', 'label': '系统权限', 'models': ( 'auth.User', 'auth.Group', )}, # 第三方库模型分组 {'app': 'django_celery_beat', 'label': '定时任务管理', 'models': ( 'django_celery_beat.PeriodicTask', 'django_celery_beat.CrontabSchedule', )}, )
未在配置中列出的应用/模型会默认按原始顺序排在末尾,容易造成配置未生效的错觉。
2. 自定义AdminSite强制处理侧边栏上下文
django-modeladmin-reorder可能未对侧边栏的app_list上下文生效,可通过自定义AdminSite重写each_context方法,手动应用排序规则:
from django.contrib.admin import AdminSite from django_modeladmin_reorder.middleware import ModelAdminReorder from django.conf import settings class CustomAdminSite(AdminSite): def each_context(self, request): context = super().each_context(request) # 调用库的排序逻辑处理侧边栏应用列表 reorder_middleware = ModelAdminReorder(getattr(settings, 'MODELADMIN_REORDER', [])) context['app_list'] = reorder_middleware._reorder_app_list(request, context['app_list']) return context # 在admin.py中注册模型到自定义站点 admin_site = CustomAdminSite(name='custom_admin') # 注册自有模型 from .models import Order, Customer from .admin import OrderAdmin, CustomerAdmin admin_site.register(Order, OrderAdmin) admin_site.register(Customer, CustomerAdmin) # 注册第三方模型(示例为auth模块) from django.contrib.auth.models import User, Group from django.contrib.auth.admin import UserAdmin, GroupAdmin admin_site.register(User, UserAdmin) admin_site.register(Group, GroupAdmin)
随后在urls.py替换默认Admin路由:
from django.urls import path from .admin import admin_site urlpatterns = [ path('admin/', admin_site.urls), # 其他路由... ]
3. 清理模板缓存并验证模板逻辑
如果之前自定义过Admin模板,确保侧边栏渲染使用{% for app in app_list %}的动态逻辑,而非硬编码列表。同时清理Django模板缓存:删除项目中的__pycache__目录,或执行python manage.py clearcache命令,避免旧模板内容干扰。
4. 确认第三方模型的注册归属
部分第三方库的模型默认注册到Django原生admin.site,若使用自定义AdminSite,需将这些模型重新注册到自定义站点,否则侧边栏中的第三方模型不会参与排序。
内容的提问来源于stack exchange,提问作者Svestis
相关产品推荐
相关产品推荐

