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

Метод has_perm

Метод has_perm применяется к экземпляру класса User и возвращает True, если пользователь имеет указанное разрешение, и False в противном случае. Метод проверяет разрешения, назначенные пользователю напрямую, через группы, а также суперпользователю автоматически дает True для всех разрешений. В качестве аргумента метод принимает строку с именем разрешения в формате "app_label.codename" или "app_label.permission_name", а также опциональный параметр obj для проверки разрешений на конкретный объект.

Синтаксис

user.has_perm(perm, obj=None)

Пример

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

from django.contrib.auth.models import User from myapp.models import Article # Получаем пользователя user = User.objects.get(username="john_doe") # Проверяем разрешение на добавление статьи has_perm = user.has_perm("myapp.add_article") print(has_perm)

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

True

Пример

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

from django.contrib.auth.models import User # Получаем пользователя user = User.objects.get(username="jane_doe") # Проверяем различные разрешения can_add = user.has_perm("myapp.add_article") can_change = user.has_perm("myapp.change_article") can_delete = user.has_perm("myapp.delete_article") can_view = user.has_perm("myapp.view_article") print(f"Add: {can_add}") print(f"Change: {can_change}") print(f"Delete: {can_delete}") print(f"View: {can_view}")

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

"Add: True" "Change: False" "Delete: False" "View: True"

Пример

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

from django.contrib.auth.models import User # Получаем суперпользователя superuser = User.objects.get(username="admin") # Суперпользователь имеет все разрешения has_perm = superuser.has_perm("myapp.add_article") print(has_perm)

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

True

Пример

Давайте проверим разрешение у анонимного пользователя:

from django.contrib.auth.models import AnonymousUser # Анонимный пользователь не имеет разрешений anonymous = AnonymousUser() has_perm = anonymous.has_perm("myapp.view_article") print(has_perm)

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

False

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

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