Я пытаюсь создать регистрационную форму и форму входа на моей странице индекса (НЕ отдельные адреса входа / регистрации).Я могу отображать формы, но у меня проблемы с отправкой.Сначала у меня была просто форма регистрации и представление для создания учетной записи, но добавление формы для входа стало вызывать некоторые проблемы.Относительно новичок в Django и, похоже, не могу найти документацию, подходящую для моего варианта использования.
views.py
from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm
from .forms import UserRegisterForm
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth import authenticate, login, logout
from django.contrib import messages
import datetime
from django.http import HttpResponseRedirect, HttpResponse
from django.urls import reverse
from django.contrib.auth.decorators import login_required
def index(request):
if request.method == 'POST':
if request.POST.get('submit') == 'login':
login_form = AuthenticationForm(request.POST)
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user:
if user.is_active:
login(request,user)
return HttpResponseRedirect(reverse('index'))
else:
return HttpResponse("Your account was inactive.")
else:
return HttpResponse("Invalid login details given")
elif request.POST.get('submit') == 'register':
form = UserRegisterForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
messages.success(request, f'Account created for {username}!')
return redirect('index')
else:
form = UserRegisterForm()
login_form = AuthenticationForm()
now = datetime.datetime.now()
cur_year = now.year
context = {
'login_form': login_form,
'form' : form,
'year' : cur_year
}
return render(request, 'home/index.html', context)
def about(request):
return render(request, 'about.html')
Я получаю следующую ошибку при попытке отправить либо логин, либоФорма регистрации:
local variable 'login_form' referenced before assignment
может предоставить URL сайта, если это поможет.