Django Login в контекстном процессоре работает некорректно
Я пытался отобразить форму входа и регистрации во всех моих приложениях Django. Для этого я использую context_processor, который отображает форму входа в контекст
вот мой context_processors.py в app
def login_request(request):
if request.method == "POST":
form = AuthenticationForm(request, data=request.POST)
if form.is_valid():
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password')
user = authenticate(username=username, password=password)
if user is not None:
auth.login(request, user)
return redirect("visuapp:user_page")
else:
messages.error(request, "Invalid username or password.")
else:
messages.error(request, "Invalid username or password.")
form = AuthenticationForm()
return {"login_form": form}
Затем я вызываю процессоры в settings.py
TEMPLATES = [
{
...
'OPTIONS': {
'context_processors': [
...
'myapp.context_processors.login_request',
],
},
},
]
Наконец, я объявил форму в модале в своем шаблоне base.html
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#loginModal">
SignIn
</button>
<!-- Modal -->
<div class="modal fade" id="loginModal" tabindex="-1" role="dialog"
aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<h1>Login</h1>
<form method="POST">
{% csrf_token %}
{{ login_form }}
<button class="btn btn-primary" type="submit">Login</button>
</form>
<p class="text-center">Forget Password? <a
href="{% url 'password_reset' %}">Change password</a>.
</p>
<p class="text-center">Don't have an account? <a
href="#registerModal">Create an
account</a>.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close
</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
но каждый раз, когда я пытался отправить форму, я получал следующую ошибку
dictionary update sequence element #0 has length 0; 2 is required
Я не могу найти, где именно возникает проблема, поскольку у меня такая же проблема с формой регистра, которая используется таким же образом