o site do alura space consegue criar um usuário mas esse usuário q foi criado não consegue fazer login" o indicativo q o usuário conseguiu o login, e ele ser redirecionado para a pagina inicial caso o login não seja efetuado ele continua na pagina de login"
esse e meu codigo:
form.py
from django import forms
class LoginForms(forms.Form):
nome_login = forms.CharField(
label="Nome de Login",
required=True,
max_length=100,
widget=forms.TextInput(
attrs={"class": "form-control", "placeholder": "Ex.: Ademario Sousa"}
),
)
senha = forms.CharField(
label="Senha",
required=True,
max_length=70,
widget=forms.PasswordInput(
attrs={"class": "form-control", "placeholder": "Digite sua senha"}
),
)
class CadastroForms(forms.Form):
nome_cadastro = forms.CharField(
label="Nome de Cadastro",
required=True,
max_length=100,
widget=forms.TextInput(
attrs={"class": "form-control", "placeholder": "Ex.: Ademario Sousa"}
),
)
email = forms.EmailField(
label="Email",
required=True,
max_length=100,
widget=forms.EmailInput(
attrs={
"class": "form-control",
"placeholder": "Ex.: ademariosousa@gmail.com",
}
),
)
senha_1 = forms.CharField(
label="Senha",
required=True,
max_length=70,
widget=forms.PasswordInput(
attrs={"class": "form-control", "placeholder": "Digite sua senha"}
),
)
senha_2 = forms.CharField(
label="Confirme sua Senha",
required=True,
max_length=70,
widget=forms.PasswordInput(
attrs={"class": "form-control", "placeholder": "Digite sua senha novamente"}
),
)
views.py
from django.shortcuts import render, redirect
from usuarios.forms import LoginForms, CadastroForms
from django.contrib.auth.models import User
from django.contrib import auth
def login(request):
form = LoginForms()
if request.method == "POST":
form = LoginForms(request.POST)
if form.is_valid():
nome = form["nome_login"].value()
senha = form["senha"].value()
usuario = auth.authenticate(
request,
username=nome,
password=senha
)
if usuario is not None:
auth.login(request, usuario)
return redirect('index')
else:
return redirect("login")
return render(request, "usuarios/login.html", {"form": form})
def cadastro(request):
form = CadastroForms()
if request.method == "POST":
form = CadastroForms(request.POST)
if form.is_valid():
if form["senha_1"].value() != form["senha_2"].value():
return redirect("cadastro")
nome = form["nome_cadastro"].value()
email = form["email"].value()
senha = form["senha_1"].value()
if User.objects.filter(username=nome).exists():
return redirect("cadastro")
usuario = User.objects.create(username=nome, email=email, password=senha)
usuario.save()
return redirect("login")
return render(request, "usuarios/cadastro.html", {"form": form})