如何在现有Django Admin中显示用户权限选项
恢复Django Admin用户权限选项的排查步骤
检查自定义UserAdmin类的继承与配置
如果你的accounts应用自定义了UserAdmin,必须确保继承自django.contrib.auth.admin.UserAdmin,且未破坏权限相关的字段配置:- 若扩展
fieldsets,直接拼接默认配置而非完全重写:from django.contrib.auth.admin import UserAdmin from .models import CustomUser class CustomUserAdmin(UserAdmin): fieldsets = UserAdmin.fieldsets + ( ('自定义字段', {'fields': ('phone',)}), ) filter_horizontal = UserAdmin.filter_horizontal + () - 若完全重写
fieldsets,需手动加入权限块:fieldsets = ( # 其他字段块 ('权限配置', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}), )
- 若扩展
确认Auth模块的Admin配置未被移除
检查settings.py的INSTALLED_APPS是否包含django.contrib.auth和django.contrib.contenttypes,同时确认代码中没有注销默认UserAdmin的操作:# 避免此类注销代码(除非你明确要替换默认用户管理) # admin.site.unregister(User)排查自定义Admin模板的干扰
查看项目templates/admin目录下是否存在auth/user/change_form.html或全局change_form.html,这类自定义模板可能隐藏了权限区域。对比全新Django项目的默认模板,补全权限相关的DOM结构。清除缓存并重启服务
强制刷新浏览器(Ctrl+F5)清除缓存,同时重启Django开发服务器,确保静态文件和模板加载最新版本。检查第三方Admin主题/插件的影响
如果使用了django-suit、django-admin-bootstrapped等Admin主题,临时注释掉相关配置,恢复默认Admin界面,验证权限选项是否显示。
内容的提问来源于stack exchange,提问作者mightycode Newton
相关产品推荐
相关产品推荐

