Django: Я не могу войти как "пользователь" со страницы входа пользователя (после ручного создания пользователя на странице администратора)
Я новичок в Django и создал проект, в котором для пользователя создается отдельная страница входа. Учетные данные пользователя уже созданы на странице администратора под Authentication and Authorization >> Users. Когда я использую те же учетные данные на странице входа пользователя и нажимаю кнопку "Log In", она снова перенаправляет на страницу входа и показывает недопустимые учетные данные даже при правильных учетных данных. Я проверил учетные данные, осмотрев страницу и проверив их на вкладке сети. Он вернул код состояния 200 для недействительных и действительных учетных данных. Пожалуйста, скажите мне, если я что-то упускаю, так как я не могу разобраться с этим после стольких исследований. Я подключил базу данных sqlite3 к своему проекту, скачав ее отдельно, и она открывается, когда я даю команду python manage.py dbshell. Может быть, с моей базой данных что-то не так? Почему я не могу войти в систему как зарегистрированный пользователь? Название проекта - Project1 и название приложения - Authenticator
Файл urls.py моего проекта:
from django.contrib import admin
from django.urls import path, include
from django.contrib.auth import views as auth_views
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('Authenticator.urls')),
]
Файл urls.py моего приложения:
from django.contrib import admin
from django.urls import path, include
from . import views
urlpatterns = [
path('admin/', views.home, name="home"),
path('', views.signin, name="signin"),
]
Мой файл views.py:
from django.shortcuts import render, redirect
from django.contrib.auth import login, authenticate
from django.contrib import messages
from django.contrib.auth.forms import AuthenticationForm
def home(request):
pass
def signin(request):
if request.method == "POST":
form = AuthenticationForm(request.POST)
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username,password=password)
if user is not None:
if user.is_active:
login(request, user)
return render(request, template_name = "Authenticator/index.html")
else:
messages.error(request,"Wrong Credentials")
return redirect('')
else:
form = AuthenticationForm()
messages.error(request,"Invalid username or password")
return render(request, "Authenticator/signin.html", {'form' : form})
мой файл signin.html:
<!DOCTYPE html>
{% load static %}
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Welcome User</title>
<link href="{% static '/css/basic.css' %}" type="text/css" rel="stylesheet" >
<!--link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"-->
</head>
{% csrf_token %}
<body>
<div class = "login-form">
<div class="form">
<form class="login-form">
<form action="signin/" method="post">
{% if form.errors %}
<p>username or password not correct</p>
{% endif %}
<!--label for="username">Username</label-->
<input type="text" id="username" name="username" class="" placeholder="Enter your username" Required />
<br>
<!--label for="password">Password</label-->
<input type="password" id="password" name="password" class="" placeholder="Enter a password" Required />
<br>
<button type="submit" style="background-color:#848387">Log In</button>
<button type="submit" style="background-color:#848387"><a href="reset.html">Reset Password</a></button>
<button type="submit" style="background-color:#848387"><a href="admin">Admin</a></button>
</form>
</form>
</div>
</div>
</body>
<script src="" async defer></script>
</html>
Мой файл models.py
from django.db import models
class tbl_Authentication(models.Model):
username = models.CharField(max_length=50, default='')
password = models.CharField(max_length=50, default='')
def __str__(self):
return self.username
empAuth_objects = models.Manager()
Мой файл settings.py: