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

Django登录表单提交后触发404错误,请求排查解决

Django登录表单提交404错误解决

问题根源分析

从错误信息和代码来看,核心问题有两个:

  1. 表单method属性错误:模板里的form标签重复写了action属性,把method="POST"误写为action="POST",导致表单提交时将POST当作路径后缀,请求变成GET方式访问login/POST,无法匹配任何URL规则。
  2. 重定向路径写法不规范:视图里的相对路径拼接可能导致路径错误,且硬编码路径不如URL反向解析可靠。

分步解决方案

1. 修复表单模板的method属性

修正form标签的属性,确保method设置为POST,action留空(默认提交到当前页面):

{% extends 'main.html' %}

{% block content %}
    <div>
        <form method="POST" action="">{% csrf_token %}
            <div>
                <label for="bestellnummer">Ihre Bestellnummer</label>
                <input type="text" name="bestellnummer" id="bestellnummer" placeholder="Ihre Bestellnummer...">
            </div>
            <div>
                <label for="email">Ihre Bestell E-Mail</label>
                <input type="email" name="email" id="email" placeholder="Ihre E-Mail...">
            </div>
            <input type="submit" value="Login">
        </form>
    </div>
{% endblock content %}

2. 规范重定向写法(推荐URL反向解析)

使用Django的reverse函数根据URL名称生成路径,避免硬编码路径的潜在问题:

from django.shortcuts import redirect, reverse

def LoginPage(request):
    if request.method == "POST":
        ordernr = request.POST.get('bestellnummer')
        email = request.POST.get('email')
        try:
            # ... Shopify API验证逻辑
            pass
        except:
            # 补充验证失败的处理,比如返回登录页并提示错误
            return redirect('login')
        else:
            # 通过URL名称和参数生成正确路径
            return redirect(reverse('order', args=[ordernr, email]))

如果坚持字符串拼接,必须使用绝对路径(开头加/):

return redirect(f'/login/{ordernr}/{email}/')

3. 优化URL参数与视图接收对应(可选)

URL规则里的参数占位符pk和dk可改为更具语义的名称,与视图接收参数保持一致:

# URL配置修改
urlpatterns = [
    path('login/', views.LoginPage, name="login"),
    path('login/<str:ordernr>/<str:email>/', views.OrderPage, name="order"),
]

# OrderPage视图接收参数
def OrderPage(request, ordernr, email):
    # 业务处理逻辑
    pass

验证修复效果

修改后重新提交表单,将以POST方式提交到login/,验证通过后重定向到login/[订单号]/[邮箱]/,匹配到order对应的URL规则,404错误将被解决。

内容的提问来源于stack exchange,提问作者david ruh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:37:45