Django2 admin 自定义user模型之后,后台添加用户时 密码不会加密的问题
django项目中,当我们创建了user模型类,并生成了超级管理员,之后我们进入到admin后台页面中,添加一个用户,再去login页面登陆时,会提示我们 用户名或密码错误。
那么问题来了,这是为什么呢?
这时,我们第一时间会想到去数据库中查看,就会发现,我们创建的新的用户的密码是明文,而在我们登陆页面传过来的密码都是经过加密的,这当然是对不上了。
在app目录下的admin.py中简单的注册模型类是不行的,我们还需要导入UserAdmin,再新建一个类继承UserAdmin,并在新建的类中添加我们想要显示的内容。
from user.models import User # 自己创建的模型类 from django.contrib.auth.admin import UserAdmin class UserInfoAdmin(UserAdmin): # 这是在管理页面中想要显示的内容 list_display = ['username', 'email', 'date_joined', 'last_login'] # 分页 list_per_page = 10 # 设置 只读 的字段 readonly_fields = ['date_joined', 'last_login'] # 后台显示的字段 fieldsets = [ (None, {'fields':['username', 'password', 'email', 'is_staff', 'is_superuser']}), ('用户活跃信息', {'fields': ['date_joined', 'last_login']}), ] # 注册时要将这两个模型类同时注册 admin.site.register(User, UserInfoAdmin)
重新启动项目之后,我们再创建用户,密码就是加密过的了,并且也能正常登陆。
原创文章,转载请注明出处:http://124.221.219.47/article/3245y/