Django导航网址不起作用

Posted

技术标签:

【中文标题】Django导航网址不起作用【英文标题】:Django navigation url doesn't work 【发布时间】:2019-01-19 13:09:09 【问题描述】:

我是 Django 新手。 我正在尝试将导航栏添加到每个页面,因此当我转到一个页面(比如关于)然后从那里转到另一个(比如联系人)时会发生路径错误。

在 navigation.html

<nav>
    <ul>
        <li>
            <a href="% url 'reports:index' %">Reports</a>
        </li>
        <li>
            <a href="about">About us</a>
        </li>
        <li>
            <a href="contact">Contact us</a>
        </li>
    </ul>
</nav>  

所以我想,我应该如何清除我的路线并从任何当前页面转到任何导航页面。

【问题讨论】:

【参考方案1】:

尝试在您的链接中添加“/”,在 navigation.html 中:&lt;a href="/about"&gt;About us&lt;/a&gt;&lt;a href="/contact"&gt;Contact us&lt;/a&gt;

如您所见,当您从 About 页面转到 Contact 页面时,您在浏览器中的 url 看起来像 127.0.0.1:8000/about/contact,但在 trydjango.urls 中您定义的路径如下:127.0.0.1:8000/contact

【讨论】:

【参考方案2】:

您有 trydjango.urls 文件,其中包含诸如 about/、contact/、products/ 等 URL,因此当您单击主页上的 URL 时,它会将您带到关于页面的 URL,但之后当您单击任何它附加到现有 URL 的其他 URL,即 about/products。所以你想要做的是你需要使 URL 成为相对的,你可以通过在你的 href 标签中添加 /about 或 /product 来做到这一点。

<a href="/contact">Contact us</a>

这将在您的 trydjango 文件中查找 /contact 并指向 URL。 阅读 URL 调度程序 docs 并尝试在可能的情况下使用 url 标记更好地回答 here

【讨论】:

谢谢,我找了很久的相对路径。有什么好的资源吗? 或许你可以从这个link开始

以上是关于Django导航网址不起作用的主要内容,如果未能解决你的问题,请参考以下文章

导航链接在导航栏中不起作用(Bootstrap)(Django)

django 参数通过获取在形成直接 url 时不起作用

Django 1.6 301 url 重定向不起作用

Django Bootstrap 下拉菜单不起作用

Django - 为啥视图中的“默认值”不起作用?

Django FileField 上传对我不起作用