В html-файле что-то не так Форма регистрации не отправляется в Django

Мой html-файл имеет некоторые проблемы, но я не могу понять, в чем проблема. Может ли кто-нибудь определить, в чем на самом деле заключается проблема.

Вот Html, который я использую:

signup.html

{% include "user/layout.html" %}

{% block content %}
<h1>Sign Up</h1>

<form method="POST">
{% csrf_token %}
    {{form}}
    <input class="btn login_btn" type="submit" value="Register Account">


</form>

{% endblock %}

**views.py **

from django.shortcuts import render, redirect
from . forms import create_user
# Create your views here.

def sign_up(request):
    form = create_user()
    
    if request.method == "POST":
        if form.is_valid():
            form.save()
            return redirect("test-home")
    
    
    
    context = {"form":form}
    return render(request, "user/signup.html", context)

**urls.py **

from django.urls import path
from . import views

urlpatterns = [
    path("create/", views.sign_up, name="sign_up"),
]

Я пробовал несколько других html шаблонов подписки из других видео. Только копирование их работает. Я не могу понять, где настоящая проблема.

Вы не можете валидировать форму create_user() без привязки к данным:

def sign_up(request):
    if request.method == 'POST':
        form = create_user(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect('test-home')
    else:
        form = create_user()
    context = {'form': form}
    return render(request, 'user/signup.html', context)

Однако я бы настоятельно советовал не называть вашу форму create_user. Обычно класс пишется в PascalCase, а форма имеет суффикс …Form, так что CreateUserForm, например.

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