Подтвердить что ты не робот

Группы пользователей и разрешения

Мне нужно реализовать права пользователя для групп пользователей (довольно похожие на группы facebook). Например, каждая группа может иметь членов с такими правами, как: can_post, can_delete, can_ban и т.д. Конечно, один пользователь может быть членом многих групп, и у группы может быть много разных пользователей с разными правами. Какие модели мне нужны для этой функциональности?

4b9b3361

Ответ 1

Django имеет встроенную систему групп. Всякий раз, когда у вас возникает такой вопрос, я рекомендую искать в документах Django, которые обширны, полезны и хорошо написаны.

Пока вы используете приложение django.contrib.auth, у вас есть доступ к группам. Затем вы можете назначить разрешения для этих групп.

from django.contrib.auth.models import User, Group, Permission
from django.contrib.contenttypes.models import ContentType

content_type = ContentType.objects.get(app_label='myapp', model='BlogPost')
permission = Permission.objects.create(codename='can_publish',
                                       name='Can Publish Posts',
                                       content_type=content_type)
user = User.objects.get(username='duke_nukem')
group = Group.objects.get(name='wizard')
group.permissions.add(permission)
user.groups.add(group)