2020-06-30-Django如何重设Admin的密码

Django如何重设Admin的密码

由于很久没有打开djago站点,后台的账户密码忘记了,所以需要重新设置找回。
加之几乎不可能从数据库的层面进行密码找回(django有自身的加密策略),所以尝试从运行程序的角度进行找回。
1.在程序对应的文件夹下执行命令

python manage.py shell

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

from django.contrib.auth.models import User
user = User.objects.get(username='admin')
user.set_password('new_passwod')
user.save()

结果:可以使用admin 加上 修改后的密码登录django后台了。

特殊情况:如果我连用户名admin也忘记了怎么办?

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

上面第二句,选择了所有的超级用户,可以进行用户密码的修改。
第三句,选择了所有是staff且是超级用户的员工。

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

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

其实这样的操作被允许,那么如果知道我们的程序存放目录就可以通过这种方式进行密码修改了,这样是否不安全呢?

你可能感兴趣的:(笔记)