Python / django проблема входа в систему

В настоящее время у меня есть типы пользователей в этом проекте Python/Django и я смог войти в систему как администратор, но я не могу войти как студент или сотрудник Я использую Postgres в качестве базы данных Может кто-нибудь помочь мне?

models.py

class CustomUser(AbstractUser):
    user_type_data = ((1,"HOD"), (2,"Staff"), (3,"student"))
    user_type = models.CharField(default=1, choices=user_type_data, max_length=10)

class Admin(models.Model):
    id = models.AutoField(primary_key=True)
    admin = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now_add=True)
    objects = models.Manager()

class Staff(models.Model):
    id = models.AutoField(primary_key=True)
    admin = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
    address = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now_add=True)
    objects = models.Manager()

class Students(models.Model):
    id = models.AutoField(primary_key=True)
    admin = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
    gender = models.CharField(max_length=255)
    profile_picture = models.FileField()
    address = models.TextField()
    course_id = models.ForeignKey(Courses, on_delete=models.DO_NOTHING)
    session_start_year = models.DateField(blank=True, null=True)
    session_end_year = models.DateField(blank=True, null=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now_add=True)
    objects = models.Manager()



@receiver(post_save, sender=CustomUser)
def create_user_profile(sender, instance, created, **kwargs):
    if created:
        if instance.user_type==1:
            Admin.objects.create(admin=instance)
        if instance.user_type==2:
            Staff.objects.create(admin=instance)
        if instance.user_type==3:
            Students.objects.create(admin=instance, course_id = Courses.objects.get(id=1), session_start_year="2020-04-02", session_end_year="2022-01-01", profile_picture="", gender="")

@receiver(post_save, sender=CustomUser)
def save_user_profile(sender, instance, **kwargs):
    if instance.user_type==1:
        instance.admin.save()
    if instance.user_type==2:
        instance.staff.save()
    if instance.user_type==3:
        instance.students.save()

вот мой вид для входа

def DoLogin(request):
    if request.method != "POST":
        return HttpResponse("<h2> Do log in first </h2>")
    
    else:
        user = EmailBackEnd.authenticate(request, username=request.POST.get("email"),password=request.POST.get("password"))
        if user != None:
            login(request, user)
            if user.user_type == "1":
                return HttpResponseRedirect("/admin_home")
            elif user.user_type == "2":
                return HttpResponse("Staff Login")
            else:
                return HttpResponse("Student Login")
    
            
        else:
            messages.error(request,"Invalid Login Details")
            return HttpResponseRedirect("/LoginPage")

Я не уверен, что я сделал неправильно в этом коде, пожалуйста, помогите мне

Вернуться на верх