You need to enable JavaScript to run this app. 如何在Django 3.2中正确编写urls.py 解决自定义路由访问报错
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django 3.2中正确编写urls.py 解决自定义路由访问报错

问题排查与解决方法

核心问题定位

  • 访问路径前缀错误:你将catatkolam应用的路由直接挂载在项目根路径下,并未挂载到admin/路由分支下。报错信息显示你实际访问的路径是admin/catatkolam/helloworld,该路径只会被admin模块的兜底通配规则匹配,完全不会触达你编写的helloworld自定义视图。
  • 路由路径缺失末尾斜杠:Django 3.2的path()路由采用严格字符串匹配规则,路径末尾的斜杠是路由结构的必要组成部分,缺失会直接导致匹配失败。
  • 路由命名拼写错误:应用路由中定义的name参数为helloword,与对应视图函数名helloworld不一致,后续使用reverse反向解析路由时会直接报错。

具体修改内容

  • 修改项目urls.py的路由配置,补全catatkolam路径的末尾斜杠:
    # 原配置
    path('catatkolam', include('catatkolam.urls')),
    # 修改为
    path('catatkolam/', include('catatkolam.urls')),
    
  • 修改应用urls.py的路由配置,补全helloworld路径的末尾斜杠,修正命名拼写:
    # 原配置
    path('helloworld', views.helloworld , name='helloword')
    # 修改为
    path('helloworld/', views.helloworld, name='helloworld')
    
  • 补充说明:Django 3.2默认开启APPEND_SLASH配置,若访问路径时忘记加末尾斜杠,框架会自动返回301跳转补全斜杠,但该机制仅对可匹配的路由生效,路径前缀错误时不会触发跳转。
  • 配置修改完成后,helloworld视图的正确访问地址为/catatkolam/helloworld/,无需携带admin/前缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 03:27:03