Я хочу реализовать пользовательскую аутентификацию при входе в Django. Я не хочу использовать встроенную систему аутентификации Django, потому что она не работает. У меня есть модель с именем Doctor, и я хочу получить данные из модели Doctor для аутентификации при входе. Я установил базу данных по умолчанию как базу данных MySQl.
Я попробовал какой-то код, но он у меня не сработал.
views.py
def login(request):
if request.POST:
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user is not None:
login(request,user)
return render(request,'welcome1.html') #success
else: #Invalid login
return render(request, 'login.html',{
'error_message':'Invalid Credential'
})
return render(request, 'login.html')
models.py
class Doctor(models.Model):
initial_name = models.CharField(max_length=8)
first_name = models.CharField(max_length=20, unique=True)
last_name = models.CharField(max_length=20, unique=True)
hospital_name = models.CharField(max_length=20)
username = models.EmailField(max_length=50)
password = models.CharField(max_length=50)
address = models.CharField(max_length=1024)
zip_code = models.CharField(max_length=12)
dob = models.DateField(max_length=8)
gender = models.CharField(max_length=10)
phone_number = models.TextField(max_length=10)
def __str__(self):
return self.initial_name
Мой ожидаемый вывод должен быть «когда я введу неправильный E-mail и пароль, он покажет ошибку»
Но он автоматически перенаправляет на мою домашнюю страницу, если я введу неверный адрес электронной почты или пароль.