Как я могу реализовать пользовательскую аутентификацию в Django для входа пользователя - PullRequest
1 голос
/ 10 апреля 2019

Я хочу реализовать пользовательскую аутентификацию при входе в 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 и пароль, он покажет ошибку» Но он автоматически перенаправляет на мою домашнюю страницу, если я введу неверный адрес электронной почты или пароль.

1 Ответ

0 голосов
/ 10 апреля 2019

Вам лучше расширить стандартную пользовательскую модель через AbstractUser

https://docs.djangoproject.com/en/2.2/topics/auth/customizing/#using-a-custom-user-model-when-starting-a-project

, если вы хотите иметь более конкретные поля, такие как имя_больницы и т. Д. В вашей пользовательской модели

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...