我正在使用Django(1.3版),忘记了管理员用户名和密码。如何重置两者?
是否可以将普通用户变为管理员,然后删除管理员状态?
我正在使用Django(1.3版),忘记了管理员用户名和密码。如何重置两者?
是否可以将普通用户变为管理员,然后删除管理员状态?
当前回答
只需在命令行中输入以下命令:
python manage.py changepassword yourusername
其他回答
检索用户名和密码的最佳方法之一是查看和更新它们。用户模型提供了一种完美的实现方法。
在本例中,我使用的是Django 1.9
Navigate to your root directory i,e. where you "manage.py" file is located using your console or other application such as Git. Retrieve the Python shell using the command "python manage.py shell". Import the User Model by typing the following command "from django.contrib.auth.models import User" Get all the users by typing the following command "users = User.objects.all()" Print a list of the users For Python 2 users use the command "print users" For Python 3 users use the command "print(users)" The first user is usually the admin. Select the user you wish to change their password e.g. "user = users[0]" Set the password user.set_password('name_of_the_new_password_for_user_selected') Save the new password "user.save()"
启动服务器,使用用户名和修改后的密码登录。
有两种方法:
changpassword管理命令:
(env) $ python manage.py changepassword <username>
或者(扩展了一些答案,但适用于任何扩展的User模型)使用django-admin shell,如下所示:
(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()
注:为什么我要用这个答案来回答这个问题?
因为,如前所述,User = get_user_model()将适用于您自己的自定义用户模型。使用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 createsuperuser"命令创建一个新的超级用户。 以新的超级用户登录。点击“users”链接。然后单击要删除的用户。单击表单页面末尾的delete user。
注意:上述过程将对特定用户所做的活动日志进行更改。
use
Python manage.py dumpdata
然后查看末尾,您将找到用户名
您可以通过控制台尝试:
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()
然后你设置一个新密码(: