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

如何在Django中正确链接带参数的urlpattern?

Django URL反向解析带参数的正确用法

核心问题根源

你的URL配置定义了带<str:title>参数的路径,反向解析时必须传入对应的参数,否则会触发"Reverse for ... with no arguments not found"错误。

针对最初的editpage场景

错误写法:

  • {% url 'editpage' %}:未传必填的title参数
  • {% url 'editpage' title='{{ title }}' %}:模板变量不需要嵌套{{}},直接引用变量名即可

正确写法:

<a href="{% url 'editpage' title=title %}">{{ title }}</a>

或者更简洁的位置参数写法(仅适用于URL参数唯一且顺序匹配的场景):

<a href="{% url 'editpage' title %}">{{ title }}</a>

针对补充的article场景

从你提供的代码看,写法本身合规,若仍报错,排查以下几点:

  1. 检查util.list_entries()返回值类型:确保返回的是字符串列表,若返回的是对象,需提取对应属性,比如entry.title
  2. 检查URL命名空间:如果app的URL是通过项目根URL的include引入且指定了namespace,反向解析时需加上命名空间:
    {% url 'your_app_namespace:article' title=entry %}
    
  3. 验证参数名一致性:URL配置中的参数名、视图函数的参数名必须完全一致(大小写敏感)

手动验证方法

可以在视图中测试反向解析,确认是否能生成正确URL:

from django.urls import reverse

def index(request):
    # 测试生成指定title的URL
    test_url = reverse('article', kwargs={'title': 'TestEntry'})
    print(test_url)  # 正常应输出 /wiki/TestEntry
    return render(request, "encyclopedia/index.html", {
        "entries": util.list_entries()
    })

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:03:34