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

Django删除数据库对象时出现NoReverseMatch错误求助

解决Django删除功能的NoReverseMatch错误

嘿,我一眼就揪出问题所在了——你的模板和视图传递的变量名不匹配,导致id根本没传过去,才触发了这个反向解析错误。咱们一步步来修复:

1. 修正模板里的变量名

你的show.html里写的是{% url 'delete_player' quarterback.id %},但根据你描述的,show视图把球员数据传给模板时用的变量名是QB,模板里根本找不到quarterback这个变量,自然传的是空id,直接触发了URL匹配失败。

把模板代码改成这样:

<tr>
    <td>{{ QB }} <a href="{% url 'delete_player' QB.id %}">Delete</a></td>
</tr>

2. 修复views.py里的隐藏坑

你当前的delete_player函数里用了Quarterback.get(id=id),这会触发另一个错误——Django模型的查询方法必须通过objects管理器调用,正确写法应该是:

def delete_player(request, id):
    quarterback = Quarterback.objects.get(id=id)
    quarterback.delete()
    return redirect('show')

要是不改这个,等你解决了URL问题,又会遇到AttributeError: type object 'Quarterback' has no attribute 'get'的新错误。

3. 为什么错误指向show函数?

因为模板是在show视图的渲染过程中生成的,当模板尝试解析{% url %}标签时,发现找不到有效的id参数,这个错误就会在show视图的执行流程里抛出来,所以错误提示指向show函数,其实根源是模板变量不匹配。

这样调整后,模板就能正确拿到球员的id,URL反向解析也能正常工作,删除功能就可以顺利跑通啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:24:36