Django Admin 不散列用户的密码

Cri*_*aza 2 django django-admin web

我使用AbstractBaseUser,并UserCreationForm与我的Django应用程序。通过我的应用程序注册用户时,密码以哈希格式保存并保存在数据库中。但是当我尝试使用 Django 管理站点做同样的事情时,密码以原始格式保存。

Ala*_*air 13

您需要确保您的模型管理类知道如何散列密码。根据文档,如果您使用子类化 AbstractBaseUser,那么您可能能够扩展UserAdmin.

假设您的自定义用户模型被称为CustomUser,您可以尝试以下操作。

from django.contrib.auth.admin import UserAdmin

class CustomUserAdmin(UserAdmin):
    ...

admin.site.register(CustomUser, CustomUserAdmin)
Run Code Online (Sandbox Code Playgroud)


Daw*_*ian 5

我猜问题是您从 admin.py 中的 django.contrib.auth.admin 继承了 ModelAdmin 而不是 UserAdmin 。

示例代码:

from django.contrib.auth.admin import UserAdmin
from .models import Employee

class EmployeeAdmin(UserAdmin):
    pass

admin.site.register(Employee, EmployeeAdmin)
Run Code Online (Sandbox Code Playgroud)