Гарантировать, что один тип пользователя не сможет войти в систему как другой тип пользователя django
В Django, как я могу убедиться, что один тип пользователя не может войти в систему как другой тип пользователя? Например, если на моем сайте есть два типа пользователей, учителя и ученики, то учителя не должны иметь возможность использовать свои учетные данные для входа в систему как ученик и наоборот.
вы можете достичь этого, используя user_passes_test
Допустим, только студенты должны иметь доступ к странице регистрации, поэтому вы можете создать функцию user_passes_function, которая возвращает True, если пользователь является студентом, иначе False, и украсить представление studen_registation, как показано во фрагменте кода ниже
from django.contrib.auth.decorators import user_passes_test
from django.shortcuts import get_object_or_404
def student_check(user):
try:
get_object_or_404(Student, user=user)
except:
return False
else:
return True
@user_passes_test(student_check)
def student_registration(request):