在Django';s管理员

在Django';s管理员,django,django-admin,Django,Django Admin,我正在通过以下方式使用自定义用户管理员: class CustomUserAdmin(admin.ModelAdmin): model = User ... admin.site.unregister(User) admin.site.register(User, CustomUserAdmin) 但是当我试图通过管理员页面更改密码时,我得到了404 user object with primary key u'4/password' does not exist. 恢复到默

我正在通过以下方式使用自定义用户管理员:

class CustomUserAdmin(admin.ModelAdmin):
    model = User
    ...
admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)
但是当我试图通过管理员页面更改密码时,我得到了404

user object with primary key u'4/password' does not exist.

恢复到默认的用户管理员工作正常。

中的默认用户管理员实现了许多功能,包括更改密码页面

除非您想自己重新实现该功能,否则您的
CustomUserAdmin
应该是
UserAdmin
的子类,而不是
admin.ModelAdmin

class CustomUserAdmin(UserAdmin):
    # as an example, this custom user admin orders users by email address
    ordering = ('email',)

admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)
此外:


根据,如果从AbstractBaseUser继承,则不能使用默认的UserAdmin;或者,换一种方式说,您可以,但只有功能的一个子集可以工作-更改现有密码可能会工作,但添加新用户会引发异常。

这对我来说是有效的,但使用This code:exclude=('is_superuser','user_permissions')会破坏它。@wenbert您需要覆盖
字段集
。超级用户和用户权限都包含在
UserAdmin.fieldset
中。您不能在字段集中包含字段,然后将其排除。这正是我要找的!谢谢!