Django authenticate() всегда возвращает None
Я создаю веб-проект на Django для облегчения распространения информации в случае землетрясения. Пользователь должен быть членом клуба в качестве Мухтара или Помощника. Система регистрации работает успешно. Но часть входа в систему постоянно возвращает значение None, хотя мои данные для входа абсолютно верны.
models.py:
from django.db import models
from django.contrib.auth.models import AbstractUser
from base64 import b32encode
from hashlib import sha1
from random import random
# Create random id
def pkgen():
rude = ('lol',)
bad_pk = True
while bad_pk:
pk = b32encode(sha1(str(random())).digest()).lower()[:24]
bad_pk = False
for rw in rude:
if pk.find(rw) >= 0: bad_pk = True
return pk
# Create your models here.
class User(AbstractUser):
muhtar = models.BooleanField(null=False,default=False)
username = models.CharField(max_length=28, null=False, unique=False)
email = models.EmailField(null=False, unique=True)
tc = models.CharField(max_length=11, null=False, unique=True)
address = models.TextField(null=False)
need_help = models.BooleanField(default=False)
date_joined = models.DateTimeField(auto_now_add=True)
USERNAME_FIELD = 'tc' #Uyarı! Bu benzersiz olmasını ister
REQUIRED_FIELDS = ['username']
def __str__(self):
return f"{self.username}"
class sos(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
sos_key = models.CharField(max_length=24, primary_key=True, default=pkgen, unique=True)
address = models.TextField(null=False, unique=False)
def __str__(self):
return f"{self.user}"
views.py:
login.html
{% load static %}
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Giriş Sayfası</title>
<link rel="stylesheet" href="{% static 'libs/bootstrap.min.css' %}">
<link rel="stylesheet" href="{% static 'register_and_login.css' %}">
<script src="{% static 'libs/jquery.min.js' %}"></script>
</head>
<body>
{% block navbar %}
{% include "navbar.html" %}
{% endblock navbar %}
<div class="container">
<br>
<div id="brs">
<br><br><br><br>
</div>
<!--giriş formu-->
<form id="giris-form" method="POST">
{% csrf_token %}
{% if error %}
<div class="alert alert-danger">{{ error }}</div>
{% endif %}
<h3>Giriş Yap</h3>
<label for="email">Email</label>
<input type="text" id="email" name="email">
<label for="tc-no">T.C. no</label>
<input type="text" id="tc-no" name="tc-no">
<label for="parola">Password</label>
<input type="password" id="parola" name="password">
<button type="submit" id="giris-yap">Giriş Yap</button>
</form>
</div>
</body>
</html>
Пожалуйста, простите мое невежество. Я новичок в django.
Я хочу, чтобы пользователь вошел в систему, но authenticate() всегда возвращает None, даже если моя информация абсолютно верна.