2

在一个 Django 1.5 项目中,我创建了一个从 AbstractBaseUser 扩展的自定义用户模型,以使电子邮件地址成为主键(而不是用户名)。

如何在 django 管理界面中获取 UserAdmin 的更改密码功能?我尝试使用名为 CustomUserAdmin 的类扩展 UserAdmin(很像Using custom User admin Breaks change password form in Django's admin 中建议的答案),但我收到以下错误消息

CustomUserAdmin.list_display[0], 'username' is not a callable or an attribute of 'CustomUserAdmin' or found in the model 'User'.

我基本上想要默认的管理界面,除了密码字段(我想要来自 UserAdmin)。

我该怎么做呢?

4

1 回答 1

0

看起来您的自定义用户模型没有“用户名”字段。而且由于 CustomUserAdmin 正在扩展 UserAdmin,它假定存在“用户名”字段;我们收到此错误。

我建议您在自定义模型中添加一个“用户名”字段,并在其中存储相同的“电子邮件”字段值。

或覆盖使用“用户名”的 UserAdmin 类的所有属性。例如:

class CustomUserAdmin(UserAdmin):
    list_display = ['email', 'first_name'.....]
于 2013-06-14T07:18:05.800 回答