使用自定义用户管理中断更改Django管理员中的密码表单

时间:2011-11-13 04:39:53

标签: 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.

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

2 个答案:

答案 0 :(得分:17)

django.contrib.auth.admin中的默认UserAdmin实现了许多功能,包括更改密码页。

您的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)

答案 1 :(得分:1)

此外:

根据the docs,如果从AbstractBaseUser继承,则无法使用默认的UserAdmin;或者换句话说,只有部分功能可以使用 - 更改现有密码可能有效,但添加新用户会产生异常。