Где в коде проекта создаются экземпляры групп и назначаются разрешения? - PullRequest
0 голосов
/ 01 ноября 2018

Я просматривал документацию по django 2.1, я вижу, что групповые разрешения можно создавать внутри пользовательской модели или напрямую, а затем их можно назначать экземпляру группы с помощью атрибута permissions. Чего я не понимаю, так это того, где в моем проекте я должен добавить код, который создает экземпляр Group и назначает разрешение этому экземпляру.

1 Ответ

0 голосов
/ 01 ноября 2018

A 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, мы также можем добавить User s [Django-doc] в группу:

from django.contrib.auth.models import User

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