在项目代码中的何处创建了组实例并分配了权限?

时间:2018-11-01 11:06:49

标签: django django-permissions

我正在浏览django 2.1的文档,我看到可以在用户模型内部或直接创建组权限,然后可以使用permissions属性将它们分配给组实例。我没有得到的是在我的项目中应该添加创建Group实例并为该实例分配权限的代码。

1 个答案:

答案 0 :(得分:0)

Group [Django-doc]只是存储在django.contrib.auth.models中的另一个模型。我们可以使用以下方法创建一个Group

from django.contrib.auth.models import Group

g1 = Group.objects.create(name='some_group_name')

接下来,我们可以向其中添加Permission [Django-doc]个对象,例如通过codename搜索:

from django.contrib.auth.models import Permission

p1 = Permission.objects.get(codename='can_add_post')
p2 = Permission.objects.get(codename='can_add_blog')
g1.permissions.add(p1, p2)

如果您使用Django的标准用户模型,我们还可以将Users [Django-doc]添加到组中:

from django.contrib.auth.models import User

u1 = User.objects.get(username='foobar')
g1.user_set.add(u1)