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

Django访问注册链接出现404页面未找到错误求助

解决Django中访问/accounts/register出现404的问题

下面是针对你代码中问题的逐一修复方案:

1. 根URL配置遗漏自定义注册路由

你的项目根目录urls.py只引入了Django自带的auth路由,没有包含你自己的registration应用路由,导致accounts/register找不到对应匹配项。

修改根目录urls.py:

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('main.urls')),
    path('news/', include('news.urls')),
    path('accounts/', include('django.contrib.auth.urls')),
    path('accounts/', include('registration.urls')),  # 添加这一行,引入自定义注册路由
]

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

2. 注册应用URL路径格式错误

Django的path()函数不需要在路径开头加斜杠,你写的/register会导致路由匹配失败;同时当前路由映射的register视图是空函数,实际注册逻辑在sign_up里。

修改registration/urls.py:

from django.contrib.auth import views as auth_views
from django.urls import path
from . import views

urlpatterns = [
    path('register', views.sign_up, name='register'),  # 去掉开头斜杠,映射到正确的sign_up视图
]

3. 视图函数逻辑错误

  • register()函数没有接收request参数,且不是实际处理注册的函数,直接弃用即可
  • sign_up函数中,表单验证失败时重新创建空表单会丢失用户输入和错误提示,应该保留带错误的表单

修改registration/views.py:

from django.shortcuts import render, redirect
from django.contrib.auth import login
from .forms import RegistrationForm


def sign_up(request):
    if request.method == 'POST':
        form = RegistrationForm(request.POST)
        if form.is_valid():
            user = form.save()
            login(request, user)
            return redirect('home')
        # 验证失败直接用当前带错误的form,不重新创建
    else:
        form = RegistrationForm()
    
    return render(request, 'registration/register.html', {'form': form})

完成以上修改后,重启Django开发服务器,访问http://127.0.0.1:8000/accounts/register即可正常加载注册页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 00:05:00