Регистрационная форма не отправляется

Попробовав множество решений из других стековых переполнений, я не могу заставить свою регистрационную форму работать в Django.

Это регистрационная форма

  <h1>Register</h1>

    <div>
        <form method="POST" action="{% url 'register' %}"></form>
        {% csrf_token %}
        {{ form.as_p}}
        <input type="submit" value="register" />
    </div>

Ниже представлен views.py `

def register_page(request):
    form = CustomUserCreateForm()
    
    if request.method == 'POST':
        form = CustomUserCreateForm(request.POST)
        if form.is_valid():
            user = form.save(commit=False)
            user.save()
            login(request, user)
            return redirect('login')
    
    page = 'register'
    context={'page':page, 'form':form}
    return render(request, 'login_register.html', context)

`

Формы.py `

class CustomUserCreateForm(UserCreationForm):
    class Meta:
        model = User
        fields = ['username', 'email', 'name', 'password1', 'password2']

`

Не выдает никакой ошибки, скорее просто не отправляется. Я попробовал изменить функцию ввода на кнопку, но она все равно не работает. Есть идеи?

Я думаю, что сохранение экземпляра формы на самом деле не делает user аутентифицируемым объект User

Попробуйте это

    if form.is_valid():
        #You are not doing anything to user, so no need to commit=False
        #user = form.save(commit=False)
        form.save()
        username = form.cleaned_data.get('username')
        password = form.cleaned_data.get('password1')
        #Make sure user is an authenticated user object
        user = authenticate(username=username, password=password)
        if user is not None:
            login(request, user)
        #Handle no user as appropriate eg,
        #else:
        #    messages.error(request,'Well that didn't work')
Вернуться на верх