You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django注册页面重定向失效:路径重复问题排查求助

Django注册表单提交路径重复问题修复

问题描述

开发Django注册页面时,提交表单后系统尝试访问重复路径localhost/users/register/users/register/,导致错误。

相关代码

users/views.py

def register_view(request):
    if request.method == "POST":
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('homepage')
    else:
        form = UserCreationForm()
    return render(request, "users/register.html", {"form": form})

users/urls.py

urlpatterns = [
    path('register/', views.register_view, name="register"),
]

main/views.py

def homepage(request):
    return render(request, 'homepage.html')

main/urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.homepage, name="homepage"),
    path('music/', include('music.urls')),
    path('users/', include('users.urls')),
]

注册页面模板(users/register.html)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Registration</title>
</head>
<body>
    <h1>REGISTER A NEW USER</h1>
    <form class="form-with-validation" action="users/register/" method="post">
        {% csrf_token %}
        {{ form }}
        <button class="form-submit">Submit</button>
    </form>
</body>
</html>

问题原因

当前页面的URL是localhost/users/register/,表单的action属性使用了相对路径users/register/,浏览器会自动将该相对路径追加到当前页面路径之后,最终形成重复的localhost/users/register/users/register/路径。

修复方案

以下三种方法任选其一即可:

  • 方法1:将action设为空字符串
    让表单提交到当前页面的URL,无需额外路径拼接:

    <form class="form-with-validation" action="" method="post">
    
  • 方法2:使用Django模板标签生成正确URL
    利用urls配置中定义的name="register",通过{% url %}标签自动生成正确路径,这是Django推荐的做法:

    <form class="form-with-validation" action="{% url 'register' %}" method="post">
    
  • 方法3:使用根目录开头的绝对路径
    直接指定从域名根目录开始的完整路径,注意开头的斜杠/:

    <form class="form-with-validation" action="/users/register/" method="post">
    

内容的提问来源于stack exchange,提问作者Federico Monetti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 10:10:19