在DjangoAdmin中创建用户时,它不会散列密码吗?
我正在尝试使用 Django REST 框架从我的 Django 管理员(该项目是一个休息 API)创建一个用户。
管理文件
class UserFrame(UserAdmin):
list_display = ["name", "email", "date_of_creation", "is_active"]
list_editable = ["is_active"]
admin.site.register(models.AccountProfile, UserFrame)
我得到的错误:
为 AccountProfile 指定的未知字段 (s) (date_joined, last_name, first_name)
AccountProfile 是我的自定义用户模型,它继承自 AbstractBaseUser 并有一个 BaseUserManager。
回答
您似乎以不使用经理的 create_user 方法的方式创建了 UserFrame 模型。
如果创建自定义用户,则需要定义一个自定义模型表单和模型管理员来正确处理密码。除非在 Django 管理员中创建用户时密码不会散列。
在此处查看https://docs.djangoproject.com/en/2.2/topics/auth/customizing/#a-full-example
此示例可帮助您创建自定义用户。