我有一个简单的菜单列表
{% block menu %}
<ul>
{% for item in list %}
<li><a href="{{item}}/">{{ item }}</a></li>
{% endfor %}
</ul>
{% endblock %}
和一个列表:
MENU = ['Home','Contact','About']
当我按下“联系人”时,转到地址 127.0.0.1:8000/Contact 使用相同的模板,但如果我再次单击“联系人”,我会在 127.0.0.1:8000/Contact/Contact
我该怎么办?
请您参考如下方法:
这里的特殊问题是您发出的 HTML 有指向“Contact/”的链接,如果您已经在/Contact URL,它将转到/Contact/Contact,就像您在这里看到的那样。
快速修复是在 {{item}} 之前添加一个/,如下所示:
<li><a href="/{{item}}/">{{ item }}</a></li>
但是,django 有比自己创建 URL 更好的方法来处理它们。查看 URL 调度程序文档 [1],目的是能够使用 url 模板标记 [2]。
那条线最终看起来像这样:
<li><a href="{% url item %}">{{ item }}</a></li>
