San*_*idi 3 python django django-admin
在姜戈:
我创建了一个超级用户,可以查看所有用户
我还为我的用户实现了忘记密码,他们可以输入他们的电子邮件,并将密码重置链接发送到他们的电子邮件,然后用户可以重置他的密码
但是管理员如何从管理仪表板更改某些用户密码
Has*_*han 14
UserAdmin我们可以通过添加文件从 Django 管理界面重置其他用户密码admin.py。使用 Django 3.1 作为示例。
管理员.py
from django.contrib import admin
from .models.models import User
from django.contrib.auth.admin import UserAdmin
admin.site.register(User, UserAdmin)
Run Code Online (Sandbox Code Playgroud)
然后我们将能够在 Django 管理界面的用户编辑页面中看到以下部分。
通过单击this form我们可以转到重置密码表单。
在您的 admin.py 文件中,您可以将 a 注册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:
...
Run Code Online (Sandbox Code Playgroud)
Django 不会在用户模型上存储原始(明文)密码,而只会存储散列(有关如何管理密码的完整详细信息,请参阅文档)。因此,不要试图直接操作用户的密码属性。这就是创建用户时使用辅助函数的原因。
要更改用户的密码,您有多种选择:
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()
Run Code Online (Sandbox Code Playgroud)
如果您安装了 Django 管理员,您还可以在身份验证系统的管理页面上更改用户的密码。Django 还提供了视图和表单,可用于允许用户更改自己的密码。
更改用户的密码将注销其所有会话。有关详细信息,请参阅密码更改时会话失效。
| 归档时间: |
|
| 查看次数: |
2897 次 |
| 最近记录: |