Alguém pode me ajudar? Não consigo visualizar o erro, já verifiquei o código várias vezes e está de acordo com o código do professor.
Executo o preenchimento dos campos do formulário (nome e senha), e quando clico para submeter ele redireciona para a página de erro.
NameError at /login
name 'usuario' is not defined
Request Method: POST
Request URL: http://127.0.0.1:8000/login
Django Version: 4.2.1
Exception Type: NameError
Exception Value:
name 'usuario' is not defined
Exception Location: C:\Users\Aluno\Documents\alura-space\usuarios\views.py, line 26, in login
Raised during: usuarios.views.login
Python Executable: C:\Users\Aluno\Documents\alura-space\venv\Scripts\python.exe
Python Version: 3.10.7
Python Path:
['C:\\Users\\Aluno\\Documents\\alura-space',
'C:\\Users\\Aluno\\AppData\\Local\\Programs\\Python\\Python310\\python310.zip',
'C:\\Users\\Aluno\\AppData\\Local\\Programs\\Python\\Python310\\DLLs',
'C:\\Users\\Aluno\\AppData\\Local\\Programs\\Python\\Python310\\lib',
'C:\\Users\\Aluno\\AppData\\Local\\Programs\\Python\\Python310',
'C:\\Users\\Aluno\\Documents\\alura-space\\venv',
'C:\\Users\\Aluno\\Documents\\alura-space\\venv\\lib\\site-packages']
Server time: Thu, 10 Aug 2023 19:19:11 -0300
O meu código *views.py *está escrito dessa forma:
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()
user = auth.authenticate(
request,
username = nome,
password = senha
)
if user 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_user(
username = nome,
email = email,
password = senha
)
usuario.save()
return redirect('login')
return render(request, 'usuarios/cadastro.html', {"form": form})
Gratidão para quem tirar um tempinho para me ajudar!