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

Django动态URL路由失效,访问动态路径出现404错误求助

Django动态URL路由404错误的排查与解决

嘿,我一眼就看出问题啦!你这是把Django两种URL路由的语法搞混了,再加上字符转义的小失误,才导致访问/view/5时出现404。

具体错误点

  • 路由语法混用:你用的是旧版的url()函数(基于正则表达式),但却写了新版path()函数才支持的<int:test_id>路径语法,这俩完全不兼容!
  • 转义字符错误:你的路由里出现了&lt;和&gt;,这是HTML转义后的字符(对应<和>),就算去掉转义,url()也不认这种写法。
  • 额外小问题:你的views.py里if form.is_valid:少了括号,应该是if form.is_valid():,不然不管表单填得对不对,都会执行保存操作。

修正方案

方案1:继续使用url()(正则表达式方式)

把路由改成正则的写法,用(?P<test_id>\d+)来匹配数字ID并命名:

from django.conf.urls import url
from . import views
app_name = 'api'
urlpatterns = [
    url(r'^view/(?P<test_id>\d+)/$' , views.add_task_to_list, name= "add_task"),
    url(r'^$', views.index, name= "index")
]

方案2:推荐使用新版path()(更简洁)

如果你的Django版本是2.0及以上,建议直接用path(),语法更直观:

from django.urls import path
from . import views
app_name = 'api'
urlpatterns = [
    path('view/<int:test_id>/', views.add_task_to_list, name= "add_task"),
    path('', views.index, name= "index")
]

同时记得把views.py里的if form.is_valid:改成if form.is_valid():,确保表单验证正常工作。

这样修改后,访问/view/5就能正确匹配到add_task_to_list视图啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 14:23:11