Django Admin - Предотвращение доступа персонала к панели администратора

Я довольно новичок в Django.

Как запретить пользователям из числа персонала входить в панель администратора Django? Я все еще хочу, чтобы они были идентифицированы как сотрудники, но не хочу, чтобы они могли входить в панель администратора. Я использую стандартную панель администратора Django.

Спасибо

Вы можете ограничить доступ администраторов только суперпользователями, переопределив стандартный сайт администратора и переопределив метод has_permission в вашем пользовательском сайте администратора, чтобы он возвращал True только для суперпользователей

myproject/admin.py

from django.contrib import admin


class MyAdminSite(admin.AdminSite):

    def has_permission(request):
        return request.user.is_active and request.user.is_superuser

myproject/apps.py

from django.contrib.admin.apps import AdminConfig


class MyAdminConfig(AdminConfig):

    default_site = 'myproject.admin.MyAdminSite'

myproject/settings.py

INSTALLED_APPS = [
    ...
    'myproject.apps.MyAdminConfig',  # replaces 'django.contrib.admin'
    ...
]
Вернуться на верх