Гарантировать, что один тип пользователя не сможет войти в систему как другой тип пользователя 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):
Вернуться на верх