下面的代码使您能够覆盖表单集,这实质上限制了非超级用户编辑权限的能力。他们仍然可以创建用户,但他们不能修改权限。他们甚至可以很好地编辑用户。
class UserAdmin(UserAdmin):
def change_view(self, request, object_id):
# we want to limit the ability of the normal user to edit permissions.
if request.user.is_superuser:
self.fieldsets = (
(None, {'fields': ('username', 'password')}),
(_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
(_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser', 'user_permissions')}),
(_('Important dates'), {'fields': ('last_login', 'date_joined')}),
(_('Groups'), {'fields': ('groups',)}),
)
else:
self.fieldsets = (
(None, {'fields': ('username', 'password')}),
(_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
#(_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser', 'user_permissions')}),
(_('Important dates'), {'fields': ('last_login', 'date_joined')}),
#(_('Groups'), {'fields': ('groups',)}),
)
return super(UserAdmin, self).change_view(request, object_id,
)