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

Django反向解析错误:找不到带空id_operation参数的operation_info

问题排查与解决方案

你遇到的反向解析错误核心原因是:传递给operation_info的id_operation参数是空字符串,结合你的代码细节,我梳理出几个关键问题和修复方案:

1. 模板循环变量引用错误

你的模板循环是{% for o in operation_list %},但链接里却用了c.id——这里的c完全没定义!这直接导致传递的id_operation是空值,反向解析自然失败。

修复模板代码:
把参数替换成循环变量o的id:

{% for o in operation_list %} 
  <tr>
    <td><a href="{% url 'operation_info' id_operation=o.id %}">link</a></td>
  </tr> 
{% endfor %}

2. URL配置与视图函数不匹配

你的urls.py里指向的是views.operation_info,但提供的视图函数名叫caravane_info,名称完全不对应;同时视图函数的参数是id_caravane,但URL里定义的参数是id_operation,两者名称必须严格一致才能让Django正确传递参数。另外建议给URL参数指定类型(比如int),避免非整数参数引发的异常。

修复urls.py:

path('Operation/Info/<int:id_operation>', views.operation_info, name='operation_info')

修复视图函数:
统一函数名和参数名,确保和URL配置对应:

def operation_info(request, id_operation):
    connected = request.user.is_authenticated
    if connected:
        U_ID = request.user.id
        F = Membre.objects.get(userr_id=U_ID)
        bureau_level = F.Grade_bureau
        # 注意:如果id_operation对应Caravane的主键,这里的查询是没问题的;如果不是,要调整字段名
        caravane = Caravane.objects.get(id=id_operation)
    return render(request,'Bureau/operation_info.html',locals())

3. 额外验证点

  • 可以在模板里临时加调试输出{{ o.id }},确认operation_list里的每个对象都有有效、非空的id值;
  • 如果你的Caravane模型主键不是默认的id字段,要把查询语句里的id替换成实际的主键字段名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:14:52