Django Admin 后台Admin继承UserAdmin增加用户密码不显示明文和用户登录不了的解决方法
Django后台Admin继承UserAdmin增加用户不显示明文方法
1.在 models.py 中用户表
# 导包规范-1.Python标准模块 from django.db import models from django.contrib.auth.models import AbstractUser # AbstractUser继承原用django中的用户原有字段再扩展 # 导包规范-2.第三方模块 # 导包规范-3.自定义模块 # 002-用户信息表 class UserProfile(AbstractUser, BaseModel): 手机号码 = models.CharField(max_length=11, blank=True, null=True) # unique=True,先去出xadmin中注册不出错 部门名称 = models.ForeignKey('Department', blank=True, null=True, on_delete=models.DO_NOTHING) class Meta: verbose_name = '用户信息' verbose_name_plural = verbose_name def __str__(self): # 必需有值的字段,当前对象的描写 return self.username # 返回此对象的用户名username
2.在 admin.py 中注册表
# 导包规范-1.Python django标准模块 from django.contrib import admin from django.contrib.auth.admin import UserAdmin from django.utils.translation import gettext_lazy # 导包规范-2.第三方模块 # 导包规范-3.自定义模块 from APPS.A001jcxx.models import UserProfile # 自已 models 的位置 @admin.register(UserProfile) class UserProfileAdmin(UserAdmin): list_display = ['username', 'password', 'is_staff'] # 展示页面显示字段设置 list_per_page = 10 # 展示页面展示的条 # 增加用户时密码为密文 add_fieldsets = ( (None, {u'fields': ('username', 'password1', 'password2')}), # 增加页面显示字段设置 (gettext_lazy('User Information'), {'fields': ('is_superuser', '手机号码', '部门名称', 'is_staff')}),)
3.同步数据库,创建超级用户,用超级用户登录
4.进入"用户信息" 增加新的用户
5.一定要把 "职员状态" 勾选上,如果这里没有展示,就要在新建成功后进入修改页面修改成状态,不修改的的话就登录不了后台管理(我都找了好久的方法才明白)