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

Django3使用类基视图实现登录功能提交表单报404错误咨询

问题成因
  • 登录表单的action属性配置错误:你写的action="post"是相对路径,当你在/login/页面提交表单时,浏览器会自动将提交路径拼接为/login/post,而你的路由配置中没有匹配该路径的规则,因此触发404报错。
  • 表单未指定提交方法:默认会使用GET方式提交数据,就算路径正确也无法正常完成登录验证逻辑。
解决方法

直接修改登录模板中的form标签即可,有两种可选方案:

  1. 留空action属性(默认提交到当前页面路径),同时显式指定提交方法为POST:
<form action="" method="POST">
{% csrf_token %}
{{form}}
<button type="submit">Login</button>
</form>
  1. 使用Django模板的url标签显式指定提交到登录路由,兼容性更强:
<form action="{% url 'login' %}" method="POST">
{% csrf_token %}
{{form}}
<button type="submit">Login</button>
</form>

如果你的登录模板没有放在registration/login.html的默认路径下,还需要在路由配置中给LoginView指定template_name参数:

path('login/', auth_views.LoginView.as_view(template_name="你实际的模板路径"), name='login'),

修改完成后刷新页面提交表单即可正常走登录逻辑。

内容的提问来源于stack exchange,提问作者Nauman K

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 23:36:01