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

Django 3.2添加删除按钮出现NoReverseMatch反向匹配错误如何解决?

错误原因

你触发NoReverseMatch的核心问题是路由语法混用:url()是Django中正则路由的写法(等价于re_path()),不识别path()专属的<str:id>路径转换器语法,导致Django无法匹配你传入的id参数。同时删除视图也存在逻辑错误。

修复步骤

1. 修正应用层urls.py

将删除路由改为path()写法,适配路径转换器语法,同时添加尾部斜杠符合Django路由规范,id用int类型适配数据库自增主键:

from django.urls import path
from . import views

urlpatterns=[
    path('', views.home, name='home'),
    path('delete/<int:id>/', views.delete_data, name='deldata'),
]

2. 修正views.py的删除逻辑

删除完成后应该跳转回首页,不要重复跳转删除路由,同时用get_object_or_404优化不存在数据的异常处理:

def delete_data(request, id ):
    ggwp = get_object_or_404(value, id=id)
    if request.method == "POST":
        ggwp.delete()
        return redirect('home')
    # 不需要单独的删除确认页的话可以直接跳回首页,不需要后续render逻辑
    return redirect('home')

可选优化

  • 首页添加任务的表单action改为规范写法,避免路径错误:
<form method="POST" action="{% url 'home' %}">
  • 模型类名建议遵循Python大驼峰规范,将value改为Value提升代码可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:57:02