我想检查登录的用户类型,并根据登录的用户返回模板。如何查看用户类型?这是我的Django模型:
class UserProfile(models.Model):
user = models.OneToOneField(User , on_delete= models.CASCADE)
class Student(models.Model):
profile = models.OneToOneField(User, on_delete= models.CASCADE)
rollNo = models.CharField(max_length=15)
def __str__(self):
return (self.rollNo)
class Supervisor(models.Model):
profile = models.OneToOneField(User, on_delete= models.CASCADE)
teacher_ID = models.CharField(max_length=15)
def __str__(self):
return (self.profile)
我尝试了以下语句,但它给出了一个错误:
def homePage(request):
if not request.user.is_authenticated:
return render(request , 'accounts/login.html')
user = request.user
is_student = Student.objects.filter(profile__user=user).exists()
is_supervisor = Supervisor.objects.filter(profile__user=user).exists()
return HttpResponse("Hello")
错误:不支持查找OneToOneField的“用户”或不允许在字段上加入。
1条答案
按热度按时间ndh0cuux1#
student.profile
是User
示例。因此它不具有user
字段。这就是错误试图传达的信息。以下内容应该有效: