我正在使用Django(1.3版),忘记了管理员用户名和密码。如何重置两者?
是否可以将普通用户变为管理员,然后删除管理员状态?
我正在使用Django(1.3版),忘记了管理员用户名和密码。如何重置两者?
是否可以将普通用户变为管理员,然后删除管理员状态?
当前回答
如果你使用的是自定义用户模型
(venv)your_prj $ ./manage.py shell
>>> from customusers.models import CustomUser
>>> CustomUser.objects.filter(is_superuser=True)
>>> user = CustomUser.objects.get(email="somesuper@sys.com")
>>> user.set_password('@NewPwd')
>>> user.save()
>>> exit()
其他回答
我认为,这是更好的办法 在命令行
python管理
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 createsuperuser来创建用户。似乎没有默认的用户名密码登录到admin。
另一件值得注意的事情是将用户的状态is_staff设置为活动。至少,这对我来说管用。为了更详细地了解,我创建了另一个超级用户,如上所述。然后转到数据库表auth_user并搜索该用户名,以确保其is_staff标志设置为1。这终于允许我登录管理网站。
检索用户名和密码的最佳方法之一是查看和更新它们。用户模型提供了一种完美的实现方法。
在本例中,我使用的是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()"
启动服务器,使用用户名和修改后的密码登录。