如何重设Django管理员密码?

| 我正在使用Django(1.3版),并且忘记了管理员用户名和密码。如何重置两者? 是否可以使普通用户成为管理员,然后删除管理员状态?     
已邀请:
        
python manage.py changepassword <user_name>
查看文件     
        
python manage.py createsuperuser
将创建另一个超级用户,您将能够登录admin并修改您的用户名。 是的,为什么不。 要赋予普通用户特权,请打开带有
python manage.py shell
的shell并尝试:
from django.contrib.auth.models import User
user = User.objects.get(username=\'normaluser\')
user.is_superuser = True
user.save()
    
        您可以尝试通过控制台:
python manage.py shell
然后在shell中使用以下脚本
from django.contrib.auth.models import User
User.objects.filter(is_superuser=True)
将列出您系统上的所有超级用户。如果您从列表中识别出您的用户名:
usr = User.objects.get(username=\'your username\')
usr.set_password(\'raw password\')
usr.save()
然后您设置了一个新密码(:     
        您可以使用
createsuperuser
命令创建一个新的超级用户。     
        这是一个很好的问题。 python manage.py changepassword user_name 例子:-
python manage.py changepassword mickey
    
        新设置应首先运行ѭ1来创建用户。似乎没有默认的用户名密码可以登录admin。     
        检索用户名和密码的最佳方法之一是查看和更新​​它们。用户模型提供了一种完美的方法。 在这种情况下,我使用的是Django 1.9 导航到您的根目录,即使用控制台或其他应用程序(如Git)将\ manage.py \文件所在的位置。 使用命令“ python manage.py shell \”检索Python shell。 通过键入以下命令导入用户模型 \“从django.contrib.auth.models导入用户\” 通过键入以下命令来获取所有用户 \“用户= User.objects.all()\” 打印用户列表 对于Python 2用户,请使用命令\“ print users \” 对于Python 3用户,请使用命令\“ print(users)\” 第一个用户通常是管理员。 选择您想要更改其密码的用户,例如
\"user = users[0]\"
设定密码
user.set_password(\'name_of_the_new_password_for_user_selected\')
保存新密码
\"user.save()\"
启动服务器并使用用户名和更新的密码登录。     
        您可能还回答了设置问题,并且职员人数为零。在这种情况下,请前往postgres:
obvioustest=# \\c [yourdatabasename]
obvioustest=# \\x
obvioustest=# select * from auth_user;
-[ RECORD 1 ]+-------------
id           | 1
is_superuser | f
is_staff     | f
...
要修复,请直接编辑:
update auth_user set is_staff=\'true\' where id=1;
    
        您可以尝试以下方法: 1.无需控制台即可更改超级用户密码
python manage.py changepassword <username>
2.通过控制台更改超级用户密码     
        如果忘记了创建管理员用户,请先在
manage.py
上使用
createsuperuser
命令构建一个,然后更改密码。     
        如果您不知道此处创建的用户名。您可以按照上面@FallenAngel所述获得用户。
python manage.py shell 
from django.contrib.auth.models import User
usrs = User.objects.filter(is_superuser=True)
#identify the user
your_user = usrs.filter(username=\"yourusername\")[0]
#youruser = usrs.get(username=\"yourusername\")
#then set the password
但是,如果您创建了独立的用户模型。一个简单的情况是,您想使用电子邮件作为用户名而不是默认用户名。在这种情况下,您的用户模型位于诸如your_accounts_app.models之类的地方,则上述解决方案将无法工作。 在这种情况下,您可以改用get_user_model方法
from django.contrib.auth import get_user_model 
super_users = get_user_model().objects.filter(is_superuser=True)
#proceed to get identify your user
# and set their user password
    
        值得注意的另一件事是将用户的状态“ 20”设置为活动状态。至少,这就是它对我有用的原因。更详细地讲,如上所述,我又创建了一个“ 21”。然后,我进入数据库表
auth_user
,并搜索该用户名,以确保其
is_staff
标志设置为
1
。最终,我登录了
admin
网站。     
        使用命令“ python manage.py createsuperuser \”创建一个新的超级用户。 以新的超级用户身份登录。点击“用户”链接。然后单击您要删除的用户。单击表单页面末尾的删除用户。 注意-上述过程将更改由该特定用户完成的活动日志。     
        如果您忘记了管理员,则需要使用创建新用户
python manage.py createsuperuser <username>
对于密码,有CLI命令
changepassword
django更改用户密码
python manage.py changepassword <username>
要么
django-admin changepassword <username>
或在Django env中运行此代码
from django.contrib.auth.models import User
u = User.objects.get(username=\'john\')
u.set_password(\'new password\')
u.save()
    
        有两种方法可以做到这一点:
changepassword
管理命令:
(env) $ python manage.py changepassword <username>
或者使用django-admin外壳程序(扩展了一些答案,但适用于任何扩展的用户模型),如下所示:
(env) $ python manage.py shell
这将弹出shell命令提示符,如下所示:
Python 3.7.2 (default, Mar 27 2019, 08:44:46) 
[GCC 6.3.0 20170516] on linux
Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.
(InteractiveConsole)
>>>
然后,您需要以下内容:
>>> from django.contrib.auth import get_user_model
>>> User = get_user_model()
>>> user = User.objects.get(username=\'admin@hug.com\')
>>> user.set_password(\'new password\')
>>> user.save()
>>> exit()
N.B.为什么我用这个答案回答了这个问题? 如上所述,因为
User = get_user_model()
适用于您自己的定制
User
型号。使用
from django.contrib.auth.models import User
然后
User.objects.get(username=\'username\')
可能会引发以下错误:
AttributeError: Manager isn\'t available; \'auth.User\' has been swapped for \'users.User\'
    
        python manage.py changepassword用户名     
        采用   python manage.py dumpdata 然后看最后你会发现用户名     
最好的方法是直接在终端上输入
python manage.py createsuperuser
然后再次输入另一个密码和用户名 但是在大多数情况下,您会丢失一些之前创建的个人资料。     
        我认为,更好的方法 在命令行   python manage.py createsuperuser     
        获取用户名(和大多数信息)的另一种方法是直接访问数据库并从表中读取信息。     

要回复问题请先登录注册