Как предотвратить просмотр приборной панели разными типами пользователей в 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