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

Django2.0模板渲染报错:无法找到'detail'反向解析匹配路径

问题排查与解决

嘿,看你的报错信息,核心问题是在反向解析detail路由时传递了空参数——这是因为模板里的question.id没有拿到有效值,根源出在views.py的results视图里的一个拼写错误!

仔细看main_app/views.py里的results函数:

def results(request,question_id):
    question = get_object_or_404(Question,pk=question_id)
    context = {'queston':question}  # 这里少了个字母'i'!
    return render(request,'main_app/results.html',context)

你把上下文变量名写成了queston(少了i),但results.html模板里用的是{{question.id}},Django找不到question这个变量,就会把它渲染成空字符串。这就导致{% url 'main_app:detail' question.id %}传递了空参数,和你的路由规则['main_app\/(?P[0-9]+)\/$']不匹配,所以报错。

修复步骤

  1. 打开main_app/views.py,找到results函数
  2. 把context里的queston修正为question,修正后的代码如下:
def results(request,question_id):
    question = get_object_or_404(Question,pk=question_id)
    context = {'question':question}
    return render(request,'main_app/results.html',context)

修正后,模板就能正确获取到question.id的值,反向解析路由也能正常工作,你的报错就会消失啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:31:55