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 中:<a href="/about">About us</a>
和
<a href="/contact">Contact us</a>
如您所见,当您从 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导航网址不起作用的主要内容,如果未能解决你的问题,请参考以下文章