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

Django视图显示异常:访问newdevice页面却展示computers视图

Django路由匹配异常:访问newdevice页面显示computers页面内容

问题根源

你的路由配置存在两处关键错误:

  1. 项目urls重复嵌套:同时配置了path('computers/', include('computers.urls'))和path('computers/newdevice/', include('computers.urls')),当访问/computers/newdevice/时,会匹配到第二个include规则,进入应用urls后又命中空路径的views.computers,导致显示computers页面。
  2. 应用urls路径冗余:path('computers/newdevice/', views.newdevice...)中重复了computers/前缀,项目urls已经指定了computers/作为应用路由的前缀,应用内路径只需写相对部分即可。

解决方案

1. 修改项目根目录下的urls.py

删除多余的computers/newdevice/路由规则,保留唯一的应用入口:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('computers/', include('computers.urls')),
    path('admin/', admin.site.urls),
]

2. 修改应用目录下的urls.py

调整newdevice的路由路径,去掉冗余的computers/前缀:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.computers, name='computers'),
    path('newdevice/', views.newdevice, name='newdevice')
]

额外优化(可选)

computers视图函数可以简化为Django推荐的写法,无需手动加载模板和构建HttpResponse:

from django.shortcuts import render

def computers(request):
    context = {
        'a':[
            {
                'sample1': 'WMCD0001',
                'sample2': 'Desktop',
                'sample3': 'Lenovo ThinkPad',
                'sample4': '10.10.10.100',
                'sample5': 'Active',
            },
        ]
    }
    return render(request, 'computers/computers.html', context)

修改完成后,访问localhost:8000/computers/会正常显示computers页面,访问localhost:8000/computers/newdevice/会正确加载newdevice页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:15:59