Django:管理界面:如何更改用户密码
Django: admin interface: how to change user password
在 Django 中:
我创建了一个超级用户,可以查看所有用户
我还为我的用户实现了忘记密码,他们可以输入他们的电子邮件,并且密码重置 link 会发送到他们的电子邮件,然后用户可以重置他的密码
但是管理员如何从管理仪表板更改某些用户的密码
在您的 admin.py 文件中,您可以像这样将 UserAdmin
注册到您的 User
模型:
from django.contrib.auth.admin import UserAdmin as DjangoUserAdmin
from django.contrib import admin
from <my-app> import models
@admin.register(models.User)
class UserAdmin(DjangoUserAdmin):
# extra logic:
...
Django 不会在用户模型上存储原始(明文)密码,而只会存储哈希值(有关完整详细信息,请参阅 documentation of how passwords are managed)。因此,不要试图直接操作用户的密码属性。这就是创建用户时使用辅助函数的原因。
要更改用户密码,您有多种选择:
manage.py changepassword *username*
提供了一种从命令行更改用户密码的方法。它会提示您更改给定用户的密码,您必须输入两次。如果两者匹配,新密码将立即更改。如果您不提供用户,该命令将尝试更改其用户名与当前系统用户匹配的密码。
您还可以使用 set_password():
以编程方式更改密码
from django.contrib.auth.models import User
u = User.objects.get(username='john')
u.set_password('new password')
u.save()
如果您安装了 Django 管理员,您还可以在 authentication system’s admin 页面上更改用户密码。
Django 还提供了可用于允许用户更改自己的密码的视图和表单。
更改用户密码将注销他们的所有会话。 See Session invalidation on password change 了解详情。
这个答案只是@kunal Sharma 回答的延伸
从 Django admin 更改用户密码
走进用户
然后点击这个表格,会出现下面的表格,在那里修改密码
我们可以通过在 admin.py
文件中添加 UserAdmin
从 Django 管理界面重置其他用户密码。使用 Django 3.1 作为示例。
admin.py
from django.contrib import admin
from .models.models import User
from django.contrib.auth.admin import UserAdmin
admin.site.register(User, UserAdmin)
然后我们就可以在Django管理界面的用户编辑页面看到下面的部分了。
通过单击 this form
我们可以转到重设密码表单。
在 Django 中:
我创建了一个超级用户,可以查看所有用户
我还为我的用户实现了忘记密码,他们可以输入他们的电子邮件,并且密码重置 link 会发送到他们的电子邮件,然后用户可以重置他的密码
但是管理员如何从管理仪表板更改某些用户的密码
在您的 admin.py 文件中,您可以像这样将 UserAdmin
注册到您的 User
模型:
from django.contrib.auth.admin import UserAdmin as DjangoUserAdmin
from django.contrib import admin
from <my-app> import models
@admin.register(models.User)
class UserAdmin(DjangoUserAdmin):
# extra logic:
...
Django 不会在用户模型上存储原始(明文)密码,而只会存储哈希值(有关完整详细信息,请参阅 documentation of how passwords are managed)。因此,不要试图直接操作用户的密码属性。这就是创建用户时使用辅助函数的原因。
要更改用户密码,您有多种选择:
manage.py changepassword *username*
提供了一种从命令行更改用户密码的方法。它会提示您更改给定用户的密码,您必须输入两次。如果两者匹配,新密码将立即更改。如果您不提供用户,该命令将尝试更改其用户名与当前系统用户匹配的密码。
您还可以使用 set_password():
以编程方式更改密码from django.contrib.auth.models import User
u = User.objects.get(username='john')
u.set_password('new password')
u.save()
如果您安装了 Django 管理员,您还可以在 authentication system’s admin 页面上更改用户密码。 Django 还提供了可用于允许用户更改自己的密码的视图和表单。
更改用户密码将注销他们的所有会话。 See Session invalidation on password change 了解详情。
这个答案只是@kunal Sharma 回答的延伸
从 Django admin 更改用户密码
走进用户
然后点击这个表格,会出现下面的表格,在那里修改密码
我们可以通过在 admin.py
文件中添加 UserAdmin
从 Django 管理界面重置其他用户密码。使用 Django 3.1 作为示例。
admin.py
from django.contrib import admin
from .models.models import User
from django.contrib.auth.admin import UserAdmin
admin.site.register(User, UserAdmin)
然后我们就可以在Django管理界面的用户编辑页面看到下面的部分了。
通过单击 this form
我们可以转到重设密码表单。