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

Django urls.py中URL顺序引发的访问异常问题求助

Django URL配置顺序引发404的原因解析

Django处理URL请求时,是从上到下依次匹配urls.py中的路径规则,只要找到第一个符合的规则就会停止匹配,直接调用对应的视图类/函数。

正确顺序的逻辑

当你把精确匹配的path('blog/create', ...)放在前面时,请求http://127.0.0.1:8000/blog/blog/create会优先命中这条规则,正确路由到BlogPostCreate视图,所以能正常访问。

颠倒顺序后的问题

如果把path('blog/<slug:slug>', ...)放在前面,Django会把URL里的create当成<slug:slug>变量的取值,直接匹配这条规则并路由到BlogPostDetail视图。而这个视图会尝试查找slug为create的博客文章,数据库里显然没有对应的内容,因此返回404错误。

总结

所有带变量的URL规则(比如<slug:slug>、<int:pk>这类)都必须放在精确匹配的规则后面,避免固定路径被误识别为变量值,导致错误的视图被调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 17:34:53