Пользовательская форма входа в Django не отображает поля ввода
У меня проблема с шаблоном входа в систему. Я не уверен, но думаю, что я использую пользовательскую форму, так как путь к ней - templates/registration/login.html . Поэтому, я думаю, она заменяется на обычную форму django. Но поля ввода в моей форме не отображаются, поэтому у меня есть только кнопка входа и некоторый текст под ней. Похожие вопросы, которые я читал, не смогли решить эту проблему, поэтому я надеюсь, что кто-нибудь сможет мне помочь. Если вам нужен еще какой-нибудь код, пожалуйста, дайте мне знать. Заранее спасибо.
views.py
def login(response):
if response.method == "POST":
form = LoginForm(response.POST)
if form.is_valid():
username = form.cleaned_data.get("username")
password = form.cleaned_data.get("password")
user = authenticate(username=username, password=password)
auth_login(response,user)
return redirect("home")
else:
form = LoginForm()
return render(response, "registration/login.html",{})
urls.py
from register import views as v
path("", v.login, name="login"),
login.html
{% block content %}
<form method="POST">
{% csrf_token %}
<div class="content">
<h3>{{form.username}}</h3>
<h3>{{form.password}}</h3>
<button type="submit">Login</button>
</div>
</form>
<br>
<p>Don´t have an account yet?</p>
<p>Create one <a href="/signup">here</a></p>
{% endblock %}
Функция render() принимает объект запроса в качестве первого аргумента, имя шаблона в качестве второго аргумента и словарь в качестве необязательного третьего аргумента.
поэтому в качестве третьего аргумента функции render следует передать {"form": form}
.