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

Django项目中'accounts/register'路径出现Page not found (404)错误的问题排查

解决Django中register页面404的问题

嘿,我一眼就揪出问题根源啦!你在导航栏的register链接里误用了{% static %}模板标签——这个标签是用来加载CSS、图片、JS这类静态资源的,可不是用来生成页面路由的!这就导致点击后浏览器跳转到了/static/accounts/register,而你的实际路由是/accounts/register,自然就出现404错误了。

下面是具体的修复步骤:

1. 修复index.html中的register链接

把导航栏里的错误链接替换成正确的路由写法,推荐用Django的URL反向解析(比硬编码路径更灵活,后续改路由不用改模板):

<!-- 原来错误的写法 -->
<li>
  <a href="{% static 'accounts/register' %}">register</a>
</li>

<!-- 替换成下面两种方式之一 -->
<!-- 方式1:硬编码路由路径 -->
<li>
  <a href="/accounts/register">register</a>
</li>

<!-- 方式2:推荐用URL反向解析(更优雅) -->
<li>
  <a href="{% url 'register' %}">register</a>
</li>

2. 确保项目根urls.py正确包含accounts的路由

如果用反向解析,得先确保项目根目录下的urls.py已经把accounts应用的路由包含进去了,代码应该像这样:

from django.contrib import admin
from django.urls import path, include
from propython.views import index

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', index, name='index'),  # 首页路由
    path('accounts/', include('accounts.urls')),  # 包含accounts的URL配置
]

3. 顺便修复register.html中的表单提交路径

你的register页面表单里的action="register"也有问题,提交后会跳转到/accounts/register/register,同样会导致错误,改成下面的写法:

<!-- 原来的错误写法 -->
<form action="register" method="POST">

<!-- 替换成以下两种方式之一 -->
<!-- 方式1:用反向解析指向register视图 -->
<form action="{% url 'register' %}" method="POST">

<!-- 方式2:空action,提交到当前页面的URL(更简洁) -->
<form action="" method="POST">

做完这些修改后,重启Django服务,再点击register链接就能正常访问注册页面啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 03:59:07