Как ограничить неавторизованный доступ персонала к странице администратора django?

Я создал свою страницу администратора, и когда администратор входит в систему, он перенаправляет его на этот url http://127.0.0.1:8000/home/, но администратор может изменить url на http://127.0.0.1:8000/logistic/ после входа, как предотвратить это? Любая помощь будет оценена по достоинству

Я понимаю ваш вопрос следующим образом: "Я не хочу, чтобы администратор мог видеть страницу http://127.0.0.1:8000/logistic/"

Вы можете добавить требования к разрешениям в /logistic/ url несколькими способами:

  1. В вашем urls.py файле вы можете использовать декоратор permission_required (from django.contrib.auth.decorators import permission_required). Пример:
    url(
        r'logistic/$',
        permission_required("auth.is_internal", raise_exception=True)(
            LogisticClassBasedView.as_view()
        ), name='logistic-page'
    ),

auth.is_internal может быть изменено на любое разрешение, которого нет у пользователя admin.

Если logistic является моделью в вашем models.py файле, то по умолчанию она будет иметь 4 разрешения (add, change, delete, view I.E. post, put, delete, get). У вас должно быть что-то вроде logistic.view_logistic.

Разрешения могут быть назначены на User или Group в панели администратора Django: Admin User Permissions что соответствует следующей записи в таблице auth_permission: enter image description here что означает, что вы можете проверить наличие разрешения customers.view_customer в файле urls.py.

Чтобы получить customers префикс разрешения, вам нужно проверить django_content_type вашего приложения, которое соответствует content_type_id скриншота для id=13.

Если у вашего logistic нет модели в models.py, это не сработает.

Вернуться на верх