【发布时间】:2020-02-27 05:22:23
【问题描述】:
我尝试在 Django(2.2 版)中进行用户注册。我可以运行本地服务器并填写注册表单,但是当我单击提交按钮时,会出现不同的重定向并且不会创建新用户。不是重定向到主页('/'),而是重定向到'accounts/register/register',我不知道为什么。谁能帮我找出问题所在。
在views.py 的早期,我使用了import User from 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>
【问题讨论】:
标签: python django url redirect