我正在使用Django(1.3版),忘记了管理员用户名和密码。如何重置两者?
是否可以将普通用户变为管理员,然后删除管理员状态?
我正在使用Django(1.3版),忘记了管理员用户名和密码。如何重置两者?
是否可以将普通用户变为管理员,然后删除管理员状态?
当前回答
除了@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 createsuperuser"命令创建一个新的超级用户。 以新的超级用户登录。点击“users”链接。然后单击要删除的用户。单击表单页面末尾的delete user。
注意:上述过程将对特定用户所做的活动日志进行更改。
你也可能回答了一个错误的设置问题,没有工作人员。在这种情况下,前往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;
您可以通过控制台尝试:
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()
然后你设置一个新密码(:
如果您忘记先创建admin用户,则在manage.py上使用createsuperuser命令创建一个admin用户,然后更改密码。
如果您忘记了您的管理员,那么您需要通过使用创建新用户
python manage.py createsuperuser <username>
对于密码,有CLI命令changepassword用于django修改用户密码
python manage.py changepassword <username>
OR
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()