Django вход пользователя в систему никогда не осуществляется
У меня проблемы со входом в систему Django.
Следующий оператор if (if user is not None:) всегда разрешается как false, поэтому он переходит к else.
Я не уверен почему и буду благодарен за любую помощь
Спасибо
VIEWS.PY
from django.shortcuts import render,redirect
from django.contrib.auth import authenticate,login,logout
from django.contrib import messages
# Create your views here.
def login_user(request):
if request.method == 'post':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('index.html')
else:
messages.success(request,("there is an error...."))
return redirect('login')
else:
return render (request ,'login.html', {})
urls.py
from django.urls import path
from accounts import views
urlpatterns = [
path('login_user', views.login_user ,name= 'login'),
]
main urls.py
""
from django.contrib import admin
from django.urls import path,include
from availability import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('availability.urls'), name='index'),
path('accounts/', include('django.contrib.auth.urls')),
path('accounts/', include('accounts.urls')),
]
'''
А вот форма входа в систему:
<form action="" method="post">
{% csrf_token %}
<div class="input-group mb-3">
<input type="text" class="form-control" name='username' placeholder="username">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-user"></span>
</div>
</div>
</div>
<div class="input-group mb-3">
<input type="password" class="form-control" name='password' placeholder="Password">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-8">
<div class="icheck-primary">
<input type="checkbox" id="remember">
<label for="remember">
Remember Me
</label>
</div>
</div>
<div class="col-4">
<button type="submit" class="btn btn-primary btn-block">Sign In</button>
</div>
</div>
</form>
Я пытаюсь создать пользовательскую форму входа в систему. Ниже приведено то, что у меня получилось на данный момент. Моя проблема в том, что независимо от того, что я делаю, логин никогда не аутентифицируется. Даже если у меня есть правильный email и пароль, я всегда получаю:
Как указано в официальной документации, строковое представление метода запроса гарантированно должно быть в верхнем регистре.
Таким образом, вам придется изменить оператор if на
def login_user(request):
if request.method == 'POST': # Change here
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('index.html')
else:
messages.success(request,("there is an error...."))
return redirect('login')
else:
return render (request ,'login.html', {})