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")
Я не уверен, что я сделал неправильно в этом коде, пожалуйста, помогите мне