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

Django redirect跳转视图报no reverse match无反向匹配错误

问题根因

你的urls.py中设置了app_name = 'polls',这会给当前app下所有注册的路由加上polls命名空间。当你直接调用redirect('testDirect')做反向路由解析时,Django只会查找全局无命名空间、名为testDirect的路由,匹配不到自然会抛出No Reverse Match错误。

修复方法

修改randomQuestion视图里的重定向逻辑,在路由名前加上对应的命名空间前缀即可:

def randomQuestion(request):
    random_question = Question.objects.order_by('?')[0]
    return redirect('polls:testDirect')
补充说明

你现在代码里用的硬编码路径return redirect("/polls/testDirect")虽然能临时实现跳转,但非常不推荐:如果后续你修改了该路由的路径、或者调整了app的路由前缀,所有写死的硬编码路径都要逐一手动修改,维护成本极高。带命名空间的反向解析是Django官方推荐的写法,后续路由规则调整时不需要修改视图层的跳转逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 19:15:28