还有没有可能将普通用户变为管理员,然后再取消管理员状态?
python manage.py changepassword <user_name>
manage.py createsuperuser
创建第二个超级用户,然后查看用户列表以找到原始用户。然后用原始用户登录并删除新的超级用户。 - shackerpython manage.py createsuperuser
会创建另一个超级用户,您将能够登录管理员帐户并记住您的用户名。要给普通用户授予权限,请使用python manage.py shell
打开shell并尝试:
from django.contrib.auth.models import User
user = User.objects.get(username='normaluser')
user.is_superuser = True
user.save()
user.is_staff = True
。 - Aaron McMillin你可以尝试通过控制台:
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()
然后你设置了一个新密码 (:
User.objects.filter(is_superuser=True)
- DrTyrsapip install django-extensions
安装,添加到 installed apps
并运行 ./manage.py shell_plus
。User
类将可用,并且您可以进行 password-change
。 - Timo除了@JamesO的答案提到使用
python manage.py changepassword [username]
1- 在你的项目主目录中访问数据库(我使用的是sqlite3):
sqlite3 db.sqlite3
2- 列出 auth_user
表的内容
SELECT * FROM auth_user ;
3- 找到 is_superuser = 1
的用户,以我的情况为例是admin。
命令输出的截图(我没有足够的声望点数)
这是一个非常好的问题。
python manage.py changepassword 用户名
例子:
python manage.py changepassword mickey
检索用户名和密码的最佳方法之一是查看并更新它们。用户模型提供了完美的方法。
使用控制台或Git等应用程序导航到您的根目录,即“manage.py”文件所在位置。
使用命令“python manage.py shell”检索Python shell。
通过输入以下命令导入User Model “from django.contrib.auth.models import User”
通过输入以下命令获取所有用户 “users = 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()"
启动服务器并使用用户名和更新后的密码登录。
新的设置应该首先运行python manage.py createsuperuser
来创建用户。似乎没有默认的用户名密码可以登录到管理员界面。
changepassword
命令行工具进行操作。(env) $ python manage.py changepassword <username>
(env) $ python manage.py 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()
适用于您自己的自定义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 username