You need to enable JavaScript to run this app. Django路由配置错误:访问add_interest触发兴趣详情DoesNotExist异常
优惠活动
大模型
产品
解决方案
定价
更多

Django路由配置错误:访问add_interest触发兴趣详情DoesNotExist异常

问题根源

Django的URL路由匹配规则为按代码书写顺序从上到下逐行检索,命中第一条匹配规则即停止匹配。
你当前的路由配置顺序存在优先级冲突:将带动态slug参数的兴趣详情路由,配置在了静态路径的新增兴趣路由之前。当你访问/genres/[分类slug]/add_interest/路径时,Django会优先匹配到动态详情路由,把路径中的add_interest直接识别为interest_name参数,分发请求到interest视图,完全不会走到后面定义的add_interest逻辑。
之后interest视图用值为add_interest的slug查询Interest表,无法匹配到对应记录,最终抛出Interest matching query does not exist的异常。

修复步骤
  • 调整urls.py的路由书写顺序,将固定路径的add_interest路由移到动态slug匹配的兴趣详情路由之前,保证静态路径优先命中。调整后的参考配置:
path('genres/<slug:genre_name>/add_interest/', views.add_interest, name='add_interest'),
path('genres/<slug:genre_name>/<slug:interest_name>/', views.interest, name='interest'),
  • 修正原配置中的语法错误:原路由里name='interest’的收尾引号是中文右单引号,会引发路由解析异常,需替换为标准英文单引号。
  • 可选优化:给interest视图里的Genre.objects.get()、Interest.objects.get()查询逻辑补充异常捕获,查询不到对应记录时返回404页面,避免非法访问触发500错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 23:27:03