Django:如何在主页上制作一个 link 到子页面
Django: how to make a link on main page to sub-pages
我已经成功部署了 urls.py 中的一些页面,可以毫无问题地访问。
还有默认页面应该有指向 127.0.0.1/page1 和 127.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 将是唯一的地方。
我已经成功部署了 urls.py 中的一些页面,可以毫无问题地访问。
还有默认页面应该有指向 127.0.0.1/page1 和 127.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 模板标签。您实际上应该做的是在 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 将是唯一的地方。