Я пытаюсь сделать регистрацию пользователя в Django (версия 2.2). Я могу запустить локальный сервер и заполнить регистрационную форму, но когда я нажимаю кнопку «Отправить», происходит перенаправление, и новый пользователь не создается. Вместо перенаправления на главную страницу ('/') есть перенаправление на «account / register / register», и я не знаю почему. Может кто-нибудь помочь мне найти проблему.
Раньше в views.py я использовал команду Import User из django.contrib.auth.models и изменил код в register.html, но проблема была той же. Может быть, что-то не так с моим settings.py? в settings.py я добавил в INSTALLED_APPS = ['users.apps.UsersConfig',] и в конце LOGIN_REDIRECT_URL = '/'
# views.py
from django.shortcuts import render, redirect
from django.contrib import messages
from django.contrib.auth.forms import UserCreationForm
def register(request):
if request.method == "POST":
form_register = UserCreationForm(request.POST)
if form_register.is_valid():
username = form_register.cleaned_data.get('username')
messages.success(request, f'Account created for {username}!')
return redirect('register/')
else:
form_register = UserCreationForm()
return render(request, "registration/register.html", {'form_register': form_register})
# urls.py
from django.contrib import admin
from django.urls import path, include
from users.views import register
urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('django.contrib.auth.urls')),
path('accounts/register/', register),]
# apps.py
from django.apps import AppConfig
class UsersConfig(AppConfig):
name = 'users'
# register.html
<!doctype html>
<html>
<head>
<title>Register</title>
</head>
<body>
<form action="register" method="POST">
{% csrf_token %}
{{form_register.as_p}}
<button type="submit">Register</button>
</form>
<div>
{% for message in messages %}
<h3> {{ message }} </h3>
{% endfor %}
</div>
</body>
</html>