Python 如何检查用户类型并将其引导到Django中的相应页面?

Python 如何检查用户类型并将其引导到Django中的相应页面?,python,django,Python,Django,我正在构建一个Django项目,其中有两类用户。我有两种模式,即学生用户和招聘人员。但是,我只提供一个登录页面,根据用户类型,我会引导他们进入学生大学主页或招聘人员主页。我不知道招聘人员那部分该怎么做。你们能帮忙吗 这是我的密码 models.py class StudentUser(models.Model): 性别选择=( (‘M’、‘男’), (‘F’、‘女性’), ) user=models.OneToOneField(用户,on_delete=models.CASCADE) gende

我正在构建一个Django项目,其中有两类用户。我有两种模式,即学生用户和招聘人员。但是,我只提供一个登录页面,根据用户类型,我会引导他们进入学生大学主页或招聘人员主页。我不知道招聘人员那部分该怎么做。你们能帮忙吗

这是我的密码

models.py

class StudentUser(models.Model):
性别选择=(
(‘M’、‘男’),
(‘F’、‘女性’),
)
user=models.OneToOneField(用户,on_delete=models.CASCADE)
gender=models.CharField(最大长度=1,选项=gender\u选项)
region=models.CharField(最大长度=50)
电话号码=电话号码字段()
contact_email=models.EmailField()
bio=models.TextField()
linkedin=models.URLField(最大长度=200)
用户类型=models.CharField(最大长度=10)
定义(自我):
返回self.user.username
班级招聘人员(models.Model):
user=models.ForeignKey(用户,on_delete=models.CASCADE)
位置=型号.CharField(最大长度=50)
电话号码=电话号码字段()
公司名称=models.CharField(最大长度=100)
公司/国家/地区=型号.CharField(最大长度=60)
公司街道=型号.查菲尔德(最大长度=100)
company_city=models.CharField(最大长度=100)
状态=models.CharField(最大长度=20)
用户类型=models.CharField(最大长度=10)
定义(自我):
返回self.user.username
views.py

def用户登录(请求):
error=“”
如果request.method==“POST”:
用户名=request.POST['email']
打印(用户名)
password=request.POST['password']
#签入用户表以获取匹配的UNAME和PASSWD
用户=验证(用户名=用户名,密码=密码)
#检查用户是否有效-->解析为真/假
如果用户:
尝试:
user1=StudentUser.objects.get(user=user)
如果user1.user_type==“学生”:
登录(请求、用户)
messages.success(请求“您现在已登录!”)
返回重定向('home')
其他:
错误=真
除:
错误=真
else:#无效凭据
messages.error(请求“无效凭据!重试”)
上下文={'error':错误,
}      
返回呈现(请求'login.html',上下文)
您可以试试这个

if user1.user_type == "Student":
            login(request,user)
            messages.success(request, "You are now logged in!")
            return redirect('home_page_for_student')
else:
    login(request,user)
    messages.success(request, "You are now logged in!")
    return redirect('home_page_for_recruiter')
             
            

当我执行try:user1=StudentUser.objects.get(user=user)这一行时,如果用户是招聘人员,我不会得到一个错误吗?