【问题标题】:When creating a user in Django Admin it does not hash the password?在 Django Admin 中创建用户时,它不会散列密码吗?
【发布时间】:2021-03-09 01:09:39
【问题描述】:

我正在尝试使用 Django REST 框架从我的 Django Admin(该项目是一个 REST API)创建一个用户。

admin.py

class UserFrame(UserAdmin):
    list_display = ["name", "email", "date_of_creation", "is_active"]
    list_editable = ["is_active"]
    
admin.site.register(models.AccountProfile, UserFrame) 

我得到的错误: 为 AccountProfile 指定了未知字段(date_joined、last_name、first_name)

AccountProfile 是我的自定义用户模型,它继承自 AbstractBaseUser 并具有 BaseUserManager。

【问题讨论】:

    标签: django django-models django-rest-framework django-admin


    【解决方案1】:

    您创建的 UserFrame 模型似乎没有使用您经理的 create_user 方法。

    如果创建自定义用户,则需要定义自定义模型表单和模型管理员以正确处理密码。除非在 Django 管理员中创建用户时不会对密码进行哈希处理。

    在这里查看https://docs.djangoproject.com/en/2.2/topics/auth/customizing/#a-full-example 此示例可帮助您创建自定义用户。

    【讨论】:

      【解决方案2】:

      user.set_password(raw_password)

      这是您需要包含在自定义管理员管理器中的方法。 让它知道它必须对这些密码进行哈希处理。

      【讨论】:

        猜你喜欢
        • 2016-06-06
        • 1970-01-01
        • 1970-01-01
        • 2017-08-18
        • 1970-01-01
        • 2013-01-18
        • 2016-10-16
        • 1970-01-01
        • 2017-05-10
        相关资源
        最近更新 更多