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

时间:2018-06-04 12:35:14

标签: django permissions models

我正在使用django设置成员网站,其中成员属于他们创建的群组,然后邀请其他用户加入。

似乎我正在寻找的是使用django组功能,但关于如何解决这个问题的文档充其量是最少的 - 至少我没有找到任何。它主要讨论在管理控制台中创建组,这不是我想要做的。我想以编程方式/动态地进行。

另一种解决方法是使用用户模型的外键到组模型,但是我不能将外键添加到通用用户模型。

我已经阅读了很多谷歌从我的搜索中向我投掷的东西。没有用。

我该怎么做?

由于

1 个答案:

答案 0 :(得分:3)

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

您可以创建一个组:

from django.contrib.auth.models import Group

g1 = Group.objects.create(name='Name of the group')

Group模型有两个多对多关系:一个到User s(相关名称为users),一个到Permission(带有相关名称) permissions)。因此,我们可以使用相应的管理员添加和删除UserPermission s。

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

g1.user_set.add(user1, user2, user5, user7)

您还可以使用以下内容向群组添加权限:

g1.permissions.add(perm1, perm3, perm4)