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

Django提交表单后重定向至详情表单时出现NoReverseMatch错误求助

解决Django中NoReverseMatch错误的方案

这个错误的核心原因很明确:你在反向解析details视图时用错了参数名,而且可能没正确使用应用命名空间。咱们一步步来修复:

1. 匹配URL参数名

你的URL模式定义的参数是incubator_id:

urlpatterns = [
    # ... 其他URL配置
    path('incubators/(?P<incubator_id>[0-9]+)', views.details_view, name='details'),
]

但你在重定向时传递的是pk=15,参数名完全不匹配。你需要把反向解析的参数改成incubator_id,比如:

# 错误写法
return redirect('details', pk=incubator_instance.pk)

# 正确写法
return redirect('details', incubator_id=incubator_instance.pk)

2. 带上应用命名空间

你的URL配置里设置了app_name = 'main',这意味着所有反向解析该应用下的视图时,必须带上命名空间前缀,否则Django找不到对应的视图。正确的重定向写法应该是:

return redirect('main:details', incubator_id=incubator_instance.pk)

可选优化:统一参数名(如果更习惯用pk)

如果你更倾向于用pk作为参数名,也可以修改URL模式,把incubator_id改成pk:

path('incubators/(?P<pk>[0-9]+)', views.details_view, name='details'),

同时记得同步修改视图的参数名:

def details_view(request, pk):
    # 你的视图逻辑

这样之前的pk=15参数就能正常使用了,重定向代码可以保持return redirect('main:details', pk=incubator_instance.pk)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:24:56