Пользовательская форма входа в 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}.

Вернуться на верх