Django删除数据后页面重定向异常:URL重复index问题求助
问题排查:重定向后URL出现重复的/index
- 核心原因:你的URL配置存在嵌套路径,导致
reverse('index')生成了/index/index。最可能的情况是项目根URLconf将当前app的URL挂载到了/index/路径下,同时app自身的urls.py里又定义了path('index', ...),两者叠加形成了/index/index的完整URL。
比如根urls.py如果是这样:
from django.urls import path, include urlpatterns = [ path('index/', include('card.urls')), # 将app挂载到/index/路径下 ]
那么app的urls.py里的path('index', views.index, name="index")就会对应完整路径/index/index,reverse('index')自然会生成这个结果。
- 解决方法:
- 调整根URL配置:如果希望
index对应根路径下的/index,把根urls.py里的挂载路径改为根路径:path('', include('card.urls')) # 直接将app挂载到根路径 - 调整app的URL配置:如果根URL必须挂载到
/index/,那么把app的urls.py里的index路径改为空路径:path('', views.index, name="index"), # 对应/index/路径 - 验证reverse结果:可以在
delete视图里临时打印reverse('index')的结果,确认生成的URL是否符合预期:def delete(request, id): dishes = dish.objects.get(id=id) dishes.delete() target_url = reverse('index') print(target_url) # 查看控制台输出的URL return HttpResponseRedirect(target_url)
- 调整根URL配置:如果希望
内容的提问来源于stack exchange,提问作者Path Parakh
相关产品推荐
相关产品推荐

