Аутентификация в пользовательской модели Django

У меня есть модель ApplicantRegister, которая имеет различные поля. Я хочу зарегистрировать заявителя после заполнения необходимой информации. После регистрации и проверки почты я хочу войти в систему заявителя через электронную почту и пароль. Но я получаю неверные данные входа, хотя я предоставил правильную информацию. Разве мы не можем использовать встроенный в django authenticate в пользовательской модели?

models.py

class ApplicantRegister(models.Model):

    applicant_name_in_english = models.CharField(max_length=50)
    applicant_name_in_bengali = models.CharField(max_length=50)
    
    father_name_in_english = models.CharField(max_length=50)
    father_name_in_bengali = models.CharField(max_length=50)
    
    mother_name_in_english = models.CharField(max_length=50)
    mother_name_in_bengali = models.CharField(max_length=50)
    
    marital_status = models.CharField(max_length=20)
    
    spouse_name_in_english = models.CharField(max_length=50, blank=True)
    spouse_name_in_bengali = models.CharField(max_length=50, blank=True)
    
    gender = models.CharField(max_length=10, choices=GENDER_CHOICES)
    present_address_in_english = models.TextField()
    present_address_in_bengali = models.TextField()
    
    permanent_address_in_english = models.TextField()
    permanent_address_in_bengali = models.TextField()
    
    religion = models.CharField(max_length=20)
    
    home_district = models.CharField(max_length=30,
            choices=DISTRICT_CHOICES)
    
    national_id = models.CharField(max_length=30)
    
    date_of_birth = models.DateField()
    
    phone = models.CharField(max_length=50)
    confirm_phone = models.CharField(max_length=50)
    
    email = models.EmailField(unique=True)
    confirm_email = models.EmailField()
    
    password = models.CharField(max_length=50)
    confirm_password = models.CharField(max_length=50)
    
    applicant_photo = models.ImageField(upload_to='applicantImages/',
            validators=[validate_file_size([200]),
            validate_file_extension, validate_image_dimension([300],
            [300])])
    
    applicant_signature = \
        models.ImageField(upload_to='applicantSignature/',
                          validators=[validate_file_size([100]),
                          validate_file_extension,
                          validate_image_dimension([300], [80])])
    
    reference_1 = models.TextField()
    reference_2 = models.TextField()
    
    is_active = models.BooleanField(default=False)
    
    def __str__(self):
        return self.applicant_name_in_english

views.py

login.html

<form action="{% url 'registration_app:applicant-login' %}" method="POST">
  

    {% csrf_token %}
    
      <label for="email">Email:</label>
      <input class="form-control w-50" type="email" name="email" id="id_email" placeholder="Enter your email" required>
    
      <label for="password">Password:</label>
      <input class="form-control w-50" type="password" name="password" id="id_password" placeholder="Enter Your Password" required>
    
      <br>
      <input class="btn btn-primary" type="submit" value="Log In">

</form>

Возможно расширение и настройка базовой модели пользователя для аутентификации, но вы должны следовать документации Django Расширение существующей модели пользователя Замена пользовательской модели пользователя Использование пользовательской модели пользователя при запуске проекта

Эти три ссылки должны помочь вам.

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