Django如何重设Admin密码(转)

Posted hsggj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django如何重设Admin密码(转)相关的知识,希望对你有一定的参考价值。

 

 

django的admin用户被我多动症一样的测试,给密码弄丢了,需要重置。

从数据库重置的可能性为0,因为django对于密码有保护策略。考虑从运行程序的地方进行重置:

1.在程序的文件夹下,执行这样的命令,进行shell窗口:

1 python manage.py shell

2.对admin用户进行修改密码:

1 from django.contrib.auth.models import User  
2 user =User.objects.get(username=\'admin\')  
3 user.set_password(\'new_password\')  
4 user.save()  

结果,登录admin成功。

 

总结:我有两点疑问:

  首先,如果连用户名admin也忘记怎么办?    

1 from django.contrib.auth.models import User
2 user1 = User.objects.filter(is_superuser = True)
3 user2 = User.objects.filter(is_superuser = True, is_staff = True) 
4 print user1, user2

  上面第二句选择了所有的超级用户,可以选择其中一个进行修改密码。

  第三句选择了是staff并且是superuser的员工。

      

  注意:默认情况下,只有是staff和superuser的双重身份才能进去django自带的admin管理后台并进行修改和管理。

     当只是staff的时候,只能进入后台,但是不能进行任何操作。当只是superuser状态时,则无法进入后台。

     

 

  其次,这样的操作允许。意味着,如果知道程序放在哪个路径下面,就可以修改admin的用户密码,这是否不安全?虽然这样的操作,给我们这些记忆力不好的人留下了“后路”。忽然想起来了mysql不能对root修改密码的问题

以上是关于Django如何重设Admin密码(转)的主要内容,如果未能解决你的问题,请参考以下文章

django后台密码错误

如何制作“重设密码”?

在Django Admin中更改密码

openstack重设虚拟机实例密码

如何重设MySQL密码

django 开发忘记密码通过邮箱找回功能