Python Django,正在创建具有添加用户权限的用户

Python Django,正在创建具有添加用户权限的用户,python,django,Python,Django,在使用Django管理界面创建用户时,我经历了一个奇怪的行为。 我必须创建一个可以添加其他用户的用户,但对于该用户,Django需要两个权限,即添加用户和更改用户。但当我给用户更改权限时,它甚至可以更改站点的超级用户 我想要的是创建一个只能创建其他用户的用户 请建议 提前感谢。这在Django中默认不受支持。您可以将普通UserAdmin子类化并创建自己的,这将禁用非超级用户的“超级用户”复选框: from django.contrib.auth.admin import UserAdmin f

在使用Django管理界面创建用户时,我经历了一个奇怪的行为。 我必须创建一个可以添加其他用户的用户,但对于该用户,Django需要两个权限,即添加用户和更改用户。但当我给用户更改权限时,它甚至可以更改站点的超级用户

我想要的是创建一个只能创建其他用户的用户

请建议


提前感谢。

这在Django中默认不受支持。您可以将普通UserAdmin子类化并创建自己的,这将禁用非超级用户的“超级用户”复选框:

from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
from django.contrib import admin

class MyUserAdmin(UserAdmin):

    def formfield_for_dbfield(self, db_field, **kwargs):
        field = super(MyUserAdmin, self).formfield_for_dbfield(db_field, **kwargs)
        user = kwargs['request'].user
        if not user.is_superuser:
            if db_field.name == 'is_superuser':
                field.widget.attrs = {'disabled': 'disabled'}
        return field

admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)

是的,可能是重复的,看起来应该有用。我会试试的。谢谢。此外,是否有任何文档,我们可以从中获得信息,例如应该为哪些功能覆盖哪些方法以及应该更改哪些参数。就像在本例中,我们正在覆盖字段设置参数的change\u view方法?您可以覆盖的大多数方法都在django/contrib/admin/options.pyRight中,这只会禁用小部件,但id不能保证用户不能更改此对象。您必须重写
save()
,并在那里进行必要的验证。