Skip to main content
 首页 » 编程设计

python之如何允许用户在没有 super 用户身份的情况下修改其他用户详细信息 ( Django / python )

2024年08月28日29sharpest

我刚刚正在设置我的应用程序,我已经创建了一个管理面板,其中包括其他功能,允许创建/编辑/删除用户。我实现了所有这些并且工作正常,但后来我意识到我一直以 super 用户身份登录 -_-

当然,当我以普通注册用户身份登录后,它就不起作用了(我猜不应该这样)。

我的问题是:如何允许某些用户在不成为 super 用户的情况下更改其他用户的详细信息?

附言我查看了组和权限,但似乎都没有涵盖用户信息的编辑。

请您参考如下方法:

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

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

不要忘记将具有上述权限的用户也设为 stuff 成员,以允许他登录到管理界面。

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

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()