Django UserCreationForm не отвечает при нажатии на кнопку с вводом в поля

У меня проблемы с тем, чтобы заставить работать мое приложение для регистрации в Django. Я использую встроенную форму UserCreationForm. Я могу перейти по URL и форма отображается, но когда я ввожу информацию в поля и нажимаю кнопку отправки, ничего не происходит. Должно появиться окно ошибки, говорящее "отсутствует поле csrf_field" (я знаю это, потому что я следую руководству TechWithTim, и это то, что происходит с ним). Но когда я нажимаю кнопку "Регистрация", ничего не происходит.

views.py:

from django.shortcuts import render
from django.contrib.auth.forms import UserCreationForm

# Create your views here.
def register(response):
    form = UserCreationForm()
    return render(response, "register/register.html", {"form":form})

register.html:

{% extends "main/base.html" %}

{% block title %}Create an Account{% endblock %}

{% block content %}
    <form method="POST" class="form-group">
        {{form}}
        <button type="submit" class="btn btn-success">Register</button>
    </form>
{% endblock %}

urls.py:

from django.contrib import admin
from django.urls import path, include
from register import views as v

urlpatterns = [
    path('', include("main.urls")),
    path("register/", v.register, name="register"),
    path('admin/', admin.site.urls),
]

Я также добавил приложение в свой файл settings.py.

Это мой первый вопрос здесь, и я пытался оформить его правильно, так что извините, если не получилось

Для того чтобы Django получил данные, введенные пользователем в форму, необходимо передать POST-данные запроса в форму, если она существует. Это будет выглядеть следующим образом:

form = UserCreationForm(response.POST)

Но обратите внимание, что response.POST не будет существовать, если это не POST-запрос. (Например, если пользователь просматривает форму впервые.) В документации Django есть пример того, как обрабатывать данные формы.

В качестве альтернативы вы можете посмотреть учебник, который вы используете, в котором есть пример того, как получить данные POST из формы:

# views.py
from django.shortcuts import render, redirect
from .forms import RegisterForm


# Create your views here.
def register(response):
    if response.method == "POST":
        form = RegisterForm(response.POST)
        if form.is_valid():
            form.save()

        return redirect("/home")
    else:
        form = RegisterForm()

    return render(response, "register/register.html", {"form":form})

(Источник.)

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