Я работаю над проектом и не использую пользовательскую модель django по умолчанию, вместо этого я использую свою собственную пользовательскую модель. но я испытываю проблему. Для моей пользовательской модели я также создал свой собственный файл authb.py, который я предоставил ниже, и если я использую аутентификацию django по умолчанию, то она аутентифицирует только моего суперпользователя, а не пользователя, которого я ввожу через форму регистрации, и я я полностью застрял.
сначала вот мой authb.py
из .models import User
class AuthB:
def authenticate(self, username=None, password=None):
try:
user = User.objects.get(username=username)
return user
except:
return None
def get_user(self, user_id):
try:
return User.objects.get(pk=user_id)
except:
return None
но сейчас я не использую этот authb, вместо этого я использую аутентификацию по умолчанию.
вот мой models.py для пользовательской модели
class User(models.Model):
is_authenticated = True
username = models.CharField(max_length= 25)
email = models.CharField(max_length= 150)
password = models.CharField(max_length= 100)
last_login = models.DateTimeField(auto_now= True)
profilepic = models.CharField(max_length= 255, default= "")
def __str__(self):
return self.username
вот мой файл views.py
def signup(request):
# context = {}
# return render(request, 'sign-up.html', context)
if request.method == 'POST':
# print(request.POST)
# Get form values
username = request.POST['username']
email = request.POST['email']
password = request.POST['password']
# Check if passwords match
# Check Username
if User.objects.filter(username=username).exists():
return redirect('signup')
else:
if User.objects.filter(email=email).exists():
return redirect('signup')
else:
u = User.objects.create_user(username=username, password=password, email=email)
u.save()
return redirect('login')
else:
return render(request, 'sign-up.html')
def login(request):
# context = {}
# return render(request, 'index.html', context)
if request.method =='POST':
# print(request.POST)
email = request.POST['email']
password = request.POST['password']
u= auth.authenticate(email=email, password=password)
return redirect('index')
else:
return render(request, 'login.html')
Основная проблема в том, что простой пользователь не может войти в мой сайт, только администратор может войти в систему и django, я не аутентифицирую моего простого пользователя.