Как предотвратить просмотр приборной панели разными типами пользователей в django

У меня есть сайт с 3 типами пользователей, администратор, преподаватель и студенты, я использовал смешивание логинов для перенаправления каждого из них на их соответствующую приборную панель, но если студент изменит свой url на /instructor или /admin ; это даст ему доступ к странице; я хочу ограничить доступ студента только к странице студента и администратора только к странице администратора.

Я попробовал написать функцию

Если пользователь.student.is_authenticated: class Student_dashboard(): ......

Однако это не ограничивает их

Вы можете использовать UserPassesTestMixin, чтобы добавить тестовую функцию для проверки того, что пользователи имеют разрешение на доступ к представлению

from django.contrib.auth.mixins import UserPassesTestMixin
from django.views import View


class Student_dashboard(UserPassesTestMixin, View):

    def test_func(self):
        return self.request.user.is_student
Вернуться на верх