Django导航网址不起作用

时间:2018-08-12 18:11:08

标签: python django templates url

我是Django的新手。 我试图将导航栏添加到每个页面,所以当我转到页面的一个(例如关于),然后从那里转到另一个页面(例如,联系)时,会发生路径错误。

Home page

Then i route to about page

Then from about to contact

在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>  

因此,我想如何清除路线并从任何当前页面转到任何导航页面。

2 个答案:

答案 0 :(得分:2)

尝试在Navigation.html中为链接添加“ /”:
    <a href="/about">About us</a> 和     <a href="/contact">Contact us</a>

如您所见,当您从“关于页面”转到“页面联系”时,浏览器中的URL看起来像127.0.0.1:8000/about/contact,但是在trydjango.urls中,您定义的路径如下:127.0.0.1:8000/contact

答案 1 :(得分:0)

您有trydjango.urls文件,其中包含诸如about /,contact /,products /之类的URL,因此,当您单击主页上的URL时,它将带您到About页面的URL,但之后单击任何URL。其他URL附加到现有URL,即about / products。因此,您需要做的是将URL设置为相对URL,可以通过在href标记中添加/ about或/ product来实现。

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

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