Я пытаюсь создать систему аутентификации в Django. Мой код не может аутентифицировать пользователя.
<form method="post" action="/" class="mb-2">
{% csrf_token %}
<div class="form-group">
<label for="username">Username</label>
<input type="text" class="form-control" id="username" name="username" placeholder="Enter Your Username" Required>
</div>
<div class="form-group">
<label for="pass1">Password</label>
<input type="password" class="form-control" id="pass1" name="pass1" placeholder="Enter Your Password" Required>
</div>
<button type="submit" class="btn btn-primary">Log In</button>
</form>
Это форма из файла home.html
def home(request):
if request.method == 'POST':
username = request.POST.get('username')
pass1 = request.POST.get('pass1')
user = authenticate(username=username, pass1=pass1)
if user is not None:
login(request, user)
return render(request,"main_tem/room.html")
else:
return redirect('signup')
return render(request,"main_tem/home.html")
это домашний вид из views.py в 'main' app.
Как видно из вида home, если пользователь присутствует или зарегистрировался, он должен перенаправить пользователя на страницу room.html, но когда я пытаюсь это сделать, он перенаправляется на страницу регистрации, чего не должно происходить, если пользователь уже присутствует в базе данных. Я немного потерялся, так как не знаю, какое решение мне искать. Из того, что я заметил, я думаю, что вид home не может получить данные из формы в файле home.html
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns=[
path("",views.home,name="home"),
path("signup",views.signup,name="signup"),
path("rooms",views.rooms,name="rooms"),
]
для справки вот urls.py из 'main' приложения
Измените эту строку,
user = authenticate(username=username, pass1=pass1)
на это:
user = authenticate(username=username, password=pass1)
Вы должны идти к цели.