如何移除或隐藏Django Admin面板中的密码信息展示区域
移除Django Admin中的密码哈希展示内容
要去掉Django Admin用户编辑页面里的密码哈希及提示文字,有两种简单可行的方法:
方法一:自定义UserAdmin,直接移除密码字段组
这是最彻底的方式,直接从用户编辑页面的字段配置里删掉密码相关的展示项:
- 在你项目任意app的
admin.py文件中,添加以下代码:
from django.contrib import admin from django.contrib.auth.admin import UserAdmin from django.contrib.auth.models import User class CustomUserAdmin(UserAdmin): # 重写用户编辑页面的字段分组,删掉默认的"Password"组 fieldsets = ( (None, {'fields': ('username', 'email')}), ('权限设置', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}), ('重要日期', {'fields': ('last_login', 'date_joined')}), ) # 先注销默认的UserAdmin,再注册自定义的 admin.site.unregister(User) admin.site.register(User, CustomUserAdmin)
保存后重启服务,再进入用户编辑页面,密码哈希那段内容就完全消失了。如果需要修改用户密码,可以用页面右上角的"修改密码"按钮(默认存在)。
方法二:用CSS隐藏指定区域
如果不想改动Admin的字段配置,只想隐藏那段内容,可以通过自定义CSS实现:
- 在项目的
static/css目录下创建hide_password_hash.css文件,写入:
/* 隐藏密码哈希所在的整个字段块 */ div.field-password { display: none !important; }
- 同样在
admin.py中自定义UserAdmin,引入这个CSS:
from django.contrib import admin from django.contrib.auth.admin import UserAdmin from django.contrib.auth.models import User class CustomUserAdmin(UserAdmin): class Media: css = { 'all': ('css/hide_password_hash.css',) } admin.site.unregister(User) admin.site.register(User, CustomUserAdmin)
这样页面加载时会自动隐藏密码哈希的展示区域,不影响其他功能。
如果你的项目用了自定义用户模型,只需要把代码里的User和UserAdmin换成你自己的模型和对应的Admin类即可,逻辑完全一致。
内容的提问来源于stack exchange,提问作者Shruthi
相关产品推荐
相关产品推荐

