Django:如何在主页上制作一个 link 到子页面

Django: how to make a link on main page to sub-pages

我已经成功部署了 urls.py 中的一些页面,可以毫无问题地访问。
还有默认页面应该有指向 127.0.0.1/page1127.0.0.1/page2.
的链接 这怎么可能实现?站点名称在 settings.py
我在 index.html 中尝试了以下内容:

<h3>This is the URL for "page1": <a href="{% url 'sitename:page1.html' %}"> Click here</a></h3>
> django.urls.exceptions.NoReverseMatch: 'sitename' is not a registered namespace

<h3>This is the URL for "page1": <a href="{% url 'page1.html' %}"> Click here</a></h3>
> Reverse for 'exp.html' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

我建议您先阅读此 link 以了解 django url structure https://docs.djangoproject.com/en/1.10/topics/http/urls/#url-namespaces

解决方案将是这样的:

<h3>This is the URL for "page1": <a href="/page1"> Click here</a></h3>

<h3>This is the URL for "page2": <a href="/page2"> Click here</a></h3>

并且您必须在 urls.py

中定义此 url

您似乎在尝试将模板名称传递给 url 模板标签。您实际上应该做的是在 urls.py 中定义 url 名称,因此它看起来类似于:

url(r'^page1/$', YourView.as_view(), name="page1")

然后在模板中:

<a href="{% url "page1" %}">Page 1</a>

你应该避免硬编码 urls 做这样的事情:

<a href="/page1">Page 1</a>

因为将来您想要更改 url 时,您必须在两个地方进行:在 urls.py 和模板中,而在使用 {% url %} 模板 urls.py 将是唯一的地方。