如何在没有超级用户状态的情况下允许用户修改其他用户详细信息? (Django的/ Python)的

时间:2013-12-19 21:08:32

标签: python django authentication django-admin

我刚才正在设置我的应用程序,并且我创建了一个管理面板,其中包含其他功能,允许创建/编辑/删除用户。我实现了所有这一切并且工作正常,但后来我意识到我作为超级用户登录的整个时间-_-

当然,一旦我以普通注册用户身份登录,它就无法正常工作(因为我不应该这样做)。

我的问题是:如何让某些用户在不是超级用户的情况下更改其他用户的详细信息?

P.S。我查看了组和权限,但似乎没有涉及用户信息的编辑。

1 个答案:

答案 0 :(得分:2)

只需向用户授予以下权限,他就可以更改其他用户的用户详细信息:

auth | User | can add user
auth | User | can modify user
auth | User | can delete user

不要忘记让具有上述权限的用户成为填充成员,以便允许他登录管理界面。

<强>更新 这是一个关于如何以编程方式设置权限以允许用户修改其他用户的小片段:

import django.contrib.auth
# let's get the User permissions         
user_perms=django.contrib.auth.models.Permission.objects.filter(content_type__name='user')
# let's find a user
u = django.contrib.auth.models.User.objects.get(username='xxx')
# add the permissions to the user
for up in user_perms:
    u.user_permissions.add(up)
# and make the user a staff member
u.is_staff = True
u.save()