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

Django如何使用URL dispatcher生成页面可点击列表链接并解决404报错

问题修复方案

核心错误点

  • 模板中的{% url %}标签语法错误,缺少闭合的},导致Django没有将该代码识别为模板标签,直接作为普通字符串拼接到了请求地址中,才会出现路径为转义后的模板代码的404报错。
  • 应用urls.py中配置了app_name = "encyclopedia"命名空间,反向解析路由时需要携带命名空间前缀,否则无法匹配到对应路由。

修复后的代码

HTML模板

<ul>
    {% for entry in entries %}
        <li>
            <a href="{% url 'encyclopedia:entrypage' entry %}">{{ entry }}</a>
        </li>
    {% endfor %}
</ul>

可选优化:views.py逻辑调整(避免后续业务问题)

现有代码中直接将传入的路由参数title覆盖为条目内容,会导致后续模板需要展示条目标题时取值错误,建议调整变量命名区分参数和内容:

def entry_page(request, title):
    entry_content = util.get_entry(title)
    if entry_content:
        content = markdown2.markdown(entry_content)
        context = {
            "title": title,
            "content": content,
        }
       return render(request, "encyclopedia/entrypage.html", context) 
    else:
       return render(request, "encyclopedia/errorpage.html")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:06:04