以编程方式设置Django管理员权限

Tim*_*imo 7 django django-admin

我正在研究的Django网站有可能让用户注册一个帐户.为了向他们提供一些编辑功能,我使用内置的Django管理员.但是,我遇到了一个问题:用户注册后,他们在Django管理员中没有任何权限,甚至没有查看权限.因此,我的问题是:我如何在代码中为相关模型的用户分配管理员权限,就像我在管理员中编辑用户时在"用户权限"部分中手动分配它们一样?我已经试图与平常 has_xxx_permissions()使用自定义ModelAdmin类,但没有奏效.所以我的猜测是我忽略了一些显而易见的事情.有任何想法吗?

Chr*_*att 5

为了您的目的,它可能会更加容易和高效的所有新用户分配给特定的组,然后给该组的用户需要的所有权限.该组的任何成员也将继承这些权限.

您可以在管理员中创建组并为其分配权限.然后,您只需在注册码中添加以下内容即可.

try:
    group = Group.objects.get(name='The User Group')
except Group.DoesNotExist:
    # group should exist, but this is just for safety's sake, it case the improbable should happen
    pass
else:
    user.groups.add(group)
Run Code Online (Sandbox Code Playgroud)