Атрибут groups
Атрибут groups модели User представляет собой отношение
многие-ко-многим к модели Group. Он позволяет управлять
группами пользователя, добавлять и удалять пользователя из групп,
а также проверять принадлежность пользователя к конкретной группе.
Через группы пользователь получает все разрешения, назначенные
этим группам. Атрибут работает как стандартный менеджер
многих-ко-многим в Django.
Синтаксис
user.groups.add(group)
user.groups.remove(group)
user.groups.clear()
user.groups.all()
Пример
Получим все группы, в которые входит пользователь:
from django.contrib.auth.models import User
user = User.objects.get(username='john')
groups = user.groups.all()
for group in groups:
print(group.name)
Результат выполнения кода:
"editors"
"moderators"
Пример
Добавим пользователя в группу 'editors':
from django.contrib.auth.models import User, Group
user = User.objects.get(username='john')
editors_group = Group.objects.get(name='editors')
user.groups.add(editors_group)
print(user.groups.filter(name='editors').exists())
Результат выполнения кода:
"True"
Пример
Удалим пользователя из группы 'moderators':
from django.contrib.auth.models import User, Group
user = User.objects.get(username='john')
moderators_group = Group.objects.get(name='moderators')
user.groups.remove(moderators_group)
print(user.groups.filter(name='moderators').exists())
Результат выполнения кода:
"False"
Пример
Проверим, входит ли пользователь в группу 'editors':
from django.contrib.auth.models import User
user = User.objects.get(username='john')
is_editor = user.groups.filter(name='editors').exists()
print(is_editor)
Результат выполнения кода:
"True"
Пример
Очистим все группы пользователя:
from django.contrib.auth.models import User
user = User.objects.get(username='john')
user.groups.clear()
print(user.groups.count())
Результат выполнения кода:
"0"
Смотрите также
-
класс
Group,
который представляет группу пользователей -
атрибут
permissionsмодели Group,
который содержит разрешения группы -
атрибут
is_superuser,
который определяет наличие всех прав у пользователя -
метод
has_perm,
который проверяет наличие конкретного разрешения