【问题标题】:Django navigation url doesn't workDjango导航网址不起作用
【发布时间】: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>
所以我想,我应该如何清除我的路线并从任何当前页面转到任何导航页面。
【问题讨论】:
标签:
python
django
templates
url
【解决方案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