在Django Admin中更改自定义用户模型时,使用纯文本字段而不是特殊密码字段?

时间:2017-10-02 08:24:07

标签: python django

custom user with admin文档中,它提到如果您的自定义用户模型扩展为AbstractBaseUser,则需要手动将其添加到管理员。

我已在admin.py中使用:

完成此操作
from .models import User

@admin.register(User)
class UserAdmin(admin.ModelAdmin):
    list_display = ('email', 'first_name', 'last_name', )

然而,当我去编辑用户时,我得到了:

Plain password field

而不是通常的密码字段:

Special Password Field

1 个答案:

答案 0 :(得分:0)

该模型被视为普通ModelAdmin类,因此没有以不同方式处理password的特殊形式。

您可以查看built-in auth forms in the docs

full implementation check the full example

您需要创建一个自定义用户更改表单,如:

class CustomUserChangeForm(UserChangeForm):
    class Meta(UserChangeForm.Meta):
        model = User

然后将该表单设置为要使用的表单:

@admin.register(User)
class UserAdmin(admin.ModelAdmin):
    list_display = (
        'email',
        'first_name',
        'last_name',
    )
    form = CustomUserChangeForm