РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
548 of 818 menu

Метод has_perms

Метод has_perms применяется к объекту пользователя и возвращает True, если пользователь обладает всеми переданными разрешениями, и False - в противном случае. Этот метод полезен для проверки доступа пользователя к нескольким операциям одновременно. В качестве аргумента принимает список строк с именами разрешений в формате "app_label.codename". Необязательный параметр obj позволяет проверить разрешения на конкретном объекте.

Синтаксис

user.has_perms(perm_list, obj=None)

Пример

Давайте проверим, есть ли у пользователя разрешения на добавление и изменение статей:

from django.contrib.auth.models import User from myapp.models import Article user = User.objects.get(username="john") perms = ["blog.add_article", "blog.change_article"] has_perms = user.has_perms(perms) print(has_perms)

Результат выполнения кода:

"True"

Пример

Проверим наличие разрешений на конкретном объекте статьи:

from django.contrib.auth.models import User from myapp.models import Article user = User.objects.get(username="john") article = Article.objects.get(pk=1) perms = ["blog.change_article", "blog.delete_article"] has_perms = user.has_perms(perms, obj=article) print(has_perms)

Результат выполнения кода:

"False"

Пример

Проверим наличие разрешений у суперпользователя:

from django.contrib.auth.models import User user = User.objects.get(username="admin") perms = ["blog.add_article", "blog.change_article", "blog.delete_article"] has_perms = user.has_perms(perms) print(has_perms)

Результат выполнения кода:

"True"

Смотрите также

  • метод has_perm,
    который проверяет наличие одного разрешения у пользователя
  • метод has_module_perms,
    который проверяет наличие разрешений в конкретном приложении
  • декоратор permission_required,
    который проверяет разрешения при входе во view-функцию
  • класс Group,
    который позволяет группировать разрешения и назначать их пользователям
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить