【问题标题】:Django: how to make a link on main page to sub-pagesDjango:如何在主页上链接到子页面
【发布时间】:2017-09-08 10:30:01
【问题描述】:

我已经成功部署了一些在 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: []

【问题讨论】:

  • 贴出网址和浏览量,方便帮助。

标签: python django hyperlink href


【解决方案1】:

我建议您首先阅读此链接以了解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

【讨论】:

    【解决方案2】:

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

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

    然后在模板中:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-22
      • 2021-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      • 1970-01-01
      • 2015-12-19
      相关资源
      最近更新 更多