I'm new to Django and trying to make a user registration and login system in same HTML page.
My user registration part is working but login part is not.
So, my views.py is in the below,
from django.contrib import messages
from django.shortcuts import render, redirect
from django.contrib.auth.models import User, auth
def index(request):
if request.method == "POST":
if request.POST.get('submit') == 'Kayıt Ol':
username= request.POST['username']
email= request.POST['email']
password= request.POST['password']
if User.objects.filter(username=username).exists():
messages.info(request,'Bu kullanıcı adı kullanılıyor')
return redirect('/')
elif User.objects.filter(email=email).exists():
messages.info(request,'Bu email kullanılıyor.')
return redirect('/')
else:
user = User.objects.create_user(username=username, email=email, password=password)
user.save()
return redirect('/')
else:
return render(request, 'blog/SignPage.html')
elif request.POST.get('submit') == 'Oturum Aç':
username= request.POST.get('username')
password= request.POST.get('password')
user= auth.authenticate(username=username,password=password)
if user is not None:
auth.signin(request,user)
redirect('/anasayfa')
else :
messages.info(request,'Yanlış kullanıcı adı veya şifre')
return redirect('/')
else:
return render(request, 'blog/SignPage.html')
Also my urls.py is,
urlpatterns = [
path('', views.index, name='kaydol'),
]
Edit: I add my imports.
I believe it's an indentation error. Here, check the code below to see if it works.
And you should change auth.signin to auth.login.
def index(request):
if request.method == "POST":
if request.POST.get('submit') == 'Kayıt Ol':
username= request.POST['username']
email= request.POST['email']
password= request.POST['password']
if User.objects.filter(username=username).exists():
messages.info(request,'Bu kullanıcı adı kullanılıyor')
return redirect('/')
elif User.objects.filter(email=email).exists():
messages.info(request,'Bu email kullanılıyor.')
return redirect('/')
else:
user = User.objects.create_user(username=username, email=email, password=password)
user.save()
return redirect('/')
elif request.POST.get('submit') == 'Oturum Aç':
username= request.POST.get('username')
password= request.POST.get('password')
user= auth.authenticate(username=username,password=password)
if user is not None:
auth.login(request,user)
return redirect('/anasayfa')
else :
messages.info(request,'Yanlış kullanıcı adı veya şifre')
return redirect('/')
else:
return render(request, 'blog/SignPage.html')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With