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

Django教程03:添加specifics后URL末尾双斜杠问题排查与修复

Django URL末尾出现双斜杠的原因及修复方案

哈哈,这个问题我折腾Django的时候也碰到过!别担心,这绝对不是Django的bug,只是咱们在URL配置和链接生成的细节上没对齐而已~

问题原因分析

出现http://127.0.0.1:8000/polls/specifics/1//这种双斜杠的情况,核心是两处的斜杠重复叠加了:

  1. 你的URL配置里已经给路径加了末尾斜杠:
    path('specifics/<int:question_id>/', views.detail, name='detail')
    
  2. 在模板(或者视图里用reverse生成URL时)又手动给链接加了额外的斜杠。比如模板里可能写成了这样:
    <a href="{% url 'detail' question.id %}/">查看问题详情</a>
    
    或者视图里用了:
    url = reverse('detail', args=(question.id,)) + '/'
    
    两者的斜杠叠加后,就出现了双斜杠的情况。

修复方法

根据不同场景,你可以选择下面任意一种方案:

方案1:去掉URL配置里的末尾斜杠

把你的path改成不带末尾斜杠的形式,依赖Django默认的APPEND_SLASH配置(默认是True)自动补全斜杠:

path('specifics/<int:question_id>', views.detail, name='detail')

这样即使模板里不小心加了斜杠,Django也会自动处理成单个斜杠。

方案2:去掉模板/视图里手动添加的斜杠

保持URL配置不变,只需要修改模板里的链接写法,删掉手动加的斜杠:

<a href="{% url 'detail' question.id %}">查看问题详情</a>

如果是视图里用reverse生成URL,也去掉后面拼接的斜杠:

url = reverse('detail', args=(question.id,))

方案3:检查根URL配置(可选)

如果项目根URLconf里的polls路径是path('polls/', include('polls.urls'))(末尾带斜杠),同时你在模板里用了绝对路径写法(比如/polls/{% url 'detail' question.id %}/),也会导致重复,这种情况只需要去掉模板里路径末尾的斜杠即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:41:03