我正在使用Django(版本1.3)并且忘记了管理员用户名和密码。如何重置两者?
是否可以将普通用户设为admin,然后删除管理员状态?
答案 0 :(得分:626)
python manage.py changepassword <user_name>
答案 1 :(得分:152)
python 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()
答案 2 :(得分:100)
您可以尝试通过控制台:
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()
并设置了一个新密码(:
答案 3 :(得分:19)
您可以使用createsuperuser
命令创建新的超级用户。
答案 4 :(得分:12)
这是一个非常好的问题。
python manage.py changepassword user_name
示例: -
{{1}}
答案 5 :(得分:10)
新设置应首次运行 python manage.py createsuperuser
来创建用户。似乎没有默认用户名密码登录管理员。
答案 6 :(得分:7)
检索用户名和密码的最佳方法之一是查看和更新它们。用户模型提供了一种完美的方式。
打印用户列表 对于Python 2用户,使用命令&#34; print users&#34; 对于Python 3用户,使用命令&#34; print(users)&#34; 第一个用户通常是管理员。
选择您要更改密码的用户,例如
"user = users[0]"
设置密码
user.set_password('name_of_the_new_password_for_user_selected')
保存新密码
"user.save()"
启动服务器并使用用户名和更新的密码登录。
答案 7 :(得分:5)
您可能也回答了错误的设置问题,并且没有工作人员。在哪种情况下,前往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;
答案 8 :(得分:4)
答案 9 :(得分:4)
如果您忘记了创建管理员用户,请先在createsuperuser
上使用manage.py
命令构建一个,然后更改密码。
答案 10 :(得分:3)
如果您不知道此处创建的用户名。您可以按上面的@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
答案 11 :(得分:2)
使用命令“python manage.py createsuperuser”创建一个新的超级用户。 以新的超级用户身份登录。点击“用户”链接。然后单击要删除的用户。单击表单页面末尾的删除用户。
注意 - 上述过程将更改该特定用户完成的活动日志。
答案 12 :(得分:2)
另一件值得注意的事情是将用户的状态is_staff
设置为有效。至少,这是什么使它适合我。有关详细信息,我创建了另一个superuser
,如上所述。然后我转到数据库表auth_user
并搜索该用户名,以确保其is_staff
标志设置为1
。这最终让我登录admin
网站。
答案 13 :(得分:2)
执行此操作的两种方法:
changepassword
管理命令:
(env) $ python manage.py changepassword <username>
使用 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()
Nb。为什么我用这个答案回答了这个问题?
因为如上所述,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'
答案 14 :(得分:1)
此外@JamesO 回答使用
ActivityResultLauncher<Intent> someActivityResultLauncher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
if (result.getResultCode() == Activity.RESULT_OK) {
// There are no request codes
Intent data = result.getData();
Uri selectedImage = data.getData(); //<----this is showing NULL, why?
uploadImageFile(selectedImage);
}
}
});
1- 在您项目的主目录中访问数据库(我使用的是 sqlite3):
python manage.py changepassword [username]
2- 列出sqlite3 db.sqlite3
表的内容
auth_user
3- 查找具有 SELECT * FROM auth_user ;
的用户,在我的情况下是 admin
screenshot of the command output (I don't have enough rep points)
答案 15 :(得分:0)
python manage.py changepassword username
答案 16 :(得分:0)
使用
python manage.py dumpdata
然后查看结尾处的用户名
答案 17 :(得分:0)
如果您忘记了管理员,则需要使用创建新用户
LocalThread.ThreadLocalMap
对于密码,有CLI命令begin()
用于django更改用户密码
finish()
OR
Thread
或在Django env中运行此代码
import pandas as pd
import numpy as np
def cosine_similarity(dataset, user1, user2):
""" return cosine similarity between two lists """
dot_product = np.dot(dataset[user1], dataset[user2])
norm_user1 = np.linalg.norm(dataset[user1])
norm_user2 = np.linalg.norm(dataset[user2])
return dot_product / (norm_user1 * norm_user2)
data = {
"Rajan": {
"Inception": 2.5,
"Pulp Fiction": 3.5,
"Anger Management": 3.0,
"Fracture": 3.5,
"Serendipity": 2.5,
"Jerry Maguire": 3.0
},
"Rinku": {
"Inception": 3.0,
"Pulp Fiction": 3.5,
"Anger Management": 1.5,
"Fracture": 5.0,
"Jerry Maguire": 3.0,
"Serendipity": 3.5
}
}
df = pd.DataFrame(data)
sim = cosine_similarity(df, 'Rajan', 'Rinku')
print(sim)
答案 18 :(得分:0)
最好的方法是直接在终端上输入
python manage.py createsuperuser
,然后再次输入另一个密码和用户名 但在大多数情况下,您会丢失一些之前创建的个人资料。
答案 19 :(得分:0)
我认为,更好的方法 在命令行
python manage.py createsuperuser
答案 20 :(得分:0)
只需在命令行中输入以下命令:
python manage.py changepassword yourusername
答案 21 :(得分:0)
如果在 reset_password
中需要 /admin/ website
链接,这是要走的路:
https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#adding-a-password-reset-feature
答案 22 :(得分:0)
(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()
答案 23 :(得分:-4)
获取用户名(和大多数信息)的另一种方法是直接访问数据库并从表中读取信息。