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

Django双主键路由问题:无法反向解析thread路由

Django反向解析'thread'失败的解决办法

问题根源

你的thread路由定义了forum_id和thread_id两个参数,但存在两个关键问题:

  • thread视图仅接收thread_id单个参数,和路由要求的参数数量不匹配
  • 模板未生成包含两个参数的反向链接,导致反向解析时参数不全触发报错

修复步骤

1. 修正thread视图的参数

修改views.py中的thread函数,添加forum_id参数(即便视图逻辑里用不到这个参数,也需要接收,因为路由定义了必须传递该值):

def thread(request, forum_id, thread_id):  # 新增forum_id参数
    thread = get_object_or_404(ThreadModel, id=thread_id)
    posts = PostModel.objects.filter(thread=thread)
    context={'thread':thread,'posts':posts}
    return render(request,'threaddetail.html',context)  

2. 在模板中生成正确的反向链接

原模板仅显示标题,现在需要用{% url %}标签生成跳转链接,同时传递当前论坛的forum_id和帖子的thread_id:

<ul>
{% for thready in threads %}
<li><a href="{% url 'thread' forum_id=forums.id thread_id=thready.id %}">{{ thready.title }}</a></li>
{% endfor %}
</ul>

完成以上修改后,反向解析时就能提供路由要求的两个参数,报错问题即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:45:26