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

Django执行CRUD操作触发NoReverseMatch反向解析错误求助

出现NoReverseMatch错误的核心原因是根路由配置错误:你在项目根urls.py中为多个带<int:pk>参数的前缀路径重复引入了应用路由,导致路由反向解析时匹配了错误的父级路径前缀。当你在/delete/13/路径下的视图执行redirect('imagem:projeto')时,Django会将路由拼接为delete/13/projeto/,和预期的根路径下的/projeto/不符,因此报错。

1. 修正项目根urls.py配置

删除多余的include语句,仅保留一次应用路由引入即可,你的应用内部已定义了全量路由,不需要拆分前缀引入:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    # 仅保留这一行引入应用路由即可
    path('', include('imagem.urls')),
]

2. (可选)优化模板链接写法

替换模板中硬编码的url为Django反向解析写法,后续修改路由时无需全局调整模板:

{% for dbs in db %}
<td>
   <th>{{dbs.id}}</th>
    <td>{{dbs.nome}}</td>
    <td>{{dbs.tipo_img}}</td>
    <td>
          <a href="{% url 'imagem:view' dbs.id %}" class="btn btn-dark">Visualizar</a>
          <a href="{% url 'imagem:edit' dbs.id %}" class="btn btn-primary">Editar</a>
          <a href="{% url 'imagem:delete' dbs.id %}" class="btn btn-danger btnDel">Deletar</a>
    </td>
</tr>
{% endfor %}

配置修改完成后重启服务即可,视图中原有的redirect('imagem:projeto')逻辑无需调整,会正常解析到正确的/projeto/路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 12:54:04