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

Django传title参数调用{% url 'edit' %}时出现Reverse路由未找到错误

问题根因

路由反向解析失败的核心原因是三者参数定义不匹配:

  • urls.py中定义的edit路由没有声明接收title路径参数
  • 模板调用{% url 'edit' %}时传入了title关键字参数
  • 视图函数edit要求必须接收title位置参数

解决步骤

  1. 修改urls.py的edit路由配置
    给edit路由增加<str:title>路径参数,并且调整路由顺序放在通配路由<str:entry>之前(Django按从上到下的顺序匹配路由,通配路由会拦截所有未匹配的单层路径,放在后面会导致edit路由失效)。
    修改后的urls.py示例:
urlpatterns = [
    path("", views.index, name="index"), 
    path("error", views.error, name="error"),
    path("newPage", views.newPage, name="newPage"),
    path("random", views.random, name="random"),
    # 新增title路径参数,顺序放在<str:entry>之前
    path("edit/<str:title>", views.edit, name="edit"),
    path("<str:entry>", views.markdown, name="entry")
]
  1. 校验模板参数
    确认渲染entry.html时传入的entry变量是合法的字符串类型词条标题,没有空值、特殊字符导致路径不合法的问题。

可选方案(查询参数实现)

如果你不想把title放在路径中,想通过GET查询参数传递,可以按以下方式修改:

  • urls.py的edit路由保持原有无参数的配置
  • 模板修改为:
<a href="{% url 'edit' %}?title={{ entry }}">Edit Page</a>
  • 视图函数修改为:
def edit(request):
    title = request.GET.get("title")
    content = util.get_entry(title)
    return render(request, "encyclopedia/newPage.html", {
        "title": title, 
        "content": content
    })

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:09:03