如何在 Django 中以编程方式创建组

Big*_*gga 7 django permissions models

我正在使用 django 建立一个成员站点,其中成员属于他们创建的组,然后邀请其他用户加入。

似乎我正在寻找的是使用 django 组功能,但是关于如何进行此操作的文档充其量是最少的 - 至少我还没有找到。它基本上谈论在管理控制台中创建组,这不是我想要做的。我想以编程方式/动态方式进行。

解决此问题的另一种方法是将外键添加到用户模型到组模型,但是我无法向通用用户模型添加外键。

我已经阅读了很多谷歌从我的搜索中向我吐槽的东西。没有帮助。

我该怎么办?

谢谢

Wil*_*sem 14

那么 aGroup只是 Django 中的另一个模型(Django 库中定义的模型之一)。

因此,您可以创建一个组:

from django.contrib.auth.models import Group

g1 = Group.objects.create(name='Name of the group')
Run Code Online (Sandbox Code Playgroud)

Group模型有两个多对多关系:一个 to Users(相关名称users),一个 to Permission(相关名称permissions)。所以我们可以使用相应的管理器来添加和删除Users和Permissions。

然后,例如,您可以使用以下用户填充该组:

g1.user_set.add(user1, user2, user5, user7)
Run Code Online (Sandbox Code Playgroud)

您还可以通过以下方式向组添加权限:

g1.permissions.add(perm1, perm3, perm4)
Run Code Online (Sandbox Code Playgroud)