Django中的菜单

Kub*_*bas 1 python django menu

嗨,我开始学习Django.

我有一个简单的菜单列表

{% block menu %} 
    <ul>
    {% for item in list %}
    <li><a href="{{item}}/">{{ item }}</a></li>
    {% endfor %}
    </ul>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

和列表f.ex.

MENU = ['Home','Contact','About']
Run Code Online (Sandbox Code Playgroud)

当我按联系人然后转到地址127.0.0.1:8000/Contact与相同的模板,但如果我再次点击联系我我找不到页面127.0.0.1:8000/Contact/Contact

我该怎么办?

对不起我的英语不好.

And*_*rew 6

这里的特殊问题是您发出的HTML中包含指向"联系人/"的链接,如果您已经在/联系人URL,则会转到/联系人/联系人,就像您在此处看到的那样.

快速解决方法是在{{item}}之前添加/右,如下所示:

<li><a href="/{{item}}/">{{ item }}</a></li>
Run Code Online (Sandbox Code Playgroud)

但是,django有更好的方法来处理URL而不是自己创建URL.查看URL调度程序文档[1],目的是能够使用url模板标记[2].

这条线最终看起来像是这样的:

<li><a href="{% url item %}">{{ item }}</a></li>
Run Code Online (Sandbox Code Playgroud)
  1. [1] http://docs.djangoproject.com/en/dev/topics/http/urls/
  2. [2] http://docs.djangoproject.com/en/1.2/ref/templates/builtins/#url