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

Django登录404错误及注册后跳转异常问题求助

问题分析与解决方案

核心问题1:登录表单提交路径错误导致404

登录表单的action属性设置为login/,当页面处于http://127.0.0.1:8000/login/时,提交表单会请求http://127.0.0.1:8000/login/login/,该URL未在路由配置中定义,因此返回404错误。

核心问题2:URL路由的name参数命名不规范

urls.py中登录路由的name设为login.html,但视图跳转时使用redirect('login'),名称不匹配会引发跳转异常;同时此类命名方式不符合Django的最佳实践。


修复步骤:

1. 修改login.html的表单提交路径

将表单action改为使用Django的url标签匹配路由名称,确保路径准确:

<form action="{% url 'login' %}" method='POST'>

也可以直接使用绝对路径:

<form action="/login/" method='POST'>

2. 修正urls.py中的路由name参数

把登录、登出等路由的name改为简洁规范的名称:

urlpatterns=[
    path('',views.index,name='index'),
    #path('counter',views.counter,name='counter'),
    path('register/',views.register,name='register'),
    path('login/',views.login,name='login'),  # 改为'login'
    path('logout/',views.logout,name='logout'),  # 改为'logout'
    path('post/<str:pk>',views.post,name='post')  # 改为'post'
      #path('',views.display_records,name='table.html'),
]

3. 修复注册视图的跳转逻辑(针对注册后异常)

若注册完成后需跳转至登录页,确保注册视图中使用正确的路由名称:

def register(request):
    # 注册逻辑代码...
    # 注册成功后跳转登录页
    return redirect('login')

内容的提问来源于stack exchange,提问作者Pothula Vinitha reddy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 19:32:44