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

Прежде всего, я хочу уточнить, что я новичок в этом деле, поэтому если я не справлюсь с некоторыми концепциями, я заранее извиняюсь.

Я настроил административную панель django, с пользователем администратора и двумя другими пользователями, которые должны иметь различные разрешения для доступа к определенным адресам веб-среды.

На главной странице есть три заголовка со ссылками на три разных раздела страницы: РАЗДЕЛ A, РАЗДЕЛ B И РАЗДЕЛ C.

Я хочу иметь пользователя, который имеет доступ ко всем разделам страницы, и другого пользователя, который имеет доступ только к двум разделам.

Как я могу это сделать?

Еще мне нужно следующее: в моей конфигурации, по умолчанию, когда вы запускаете веб-сервер, первое, что открывается - это портал администрирования django, но мне нужно, чтобы при входе в систему с пользователем, доступ был непосредственно к url, который имеет права.

Заранее спасибо

Сделайте что-то вроде этого в вашем шаблоне,

// Section A for all users
{% if user.is_staff %}
    // Section B for staff admin users only
{% elif request.user.has_perm('the_permission_name') or user.is_staff %}
  // Section C for staff or user that has first permission
{% elif request.user.has_perm('the_other_permission_name') or user.is_staff %}
  // Section D for staff or user that has the other permission
{% endif %}

Посмотрите на https://docs.djangoproject.com/en/4.0/topics/auth/default/#permissions-and-authorization для установки и создания разрешений.

Но я думаю, что на этот вопрос уже есть ответ здесь, Проверка разрешения внутри шаблона в Django

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