【问题标题】:"NoReverseMatch at /" when trying to create a link in template尝试在模板中创建链接时出现“NoReverseMatch at /”
【发布时间】:2015-08-24 10:46:56
【问题描述】:

我正在关注 Django 教程,在 third part 中,他们在模板中创建了一个链接。现在,我跟着写了一个这样的模板:

<ul>
    {% for blog in blogs %}

    <li>
        <a href="{% url 'detail' blog.id %}">
            <h1>{{ blog.name }}</h1>
        </a>
        <p>{{ blog.description }}</p>
    </li>

    {% endfor %}
</ul>

我已经像这样设置了 urls.py:

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^(?P<blog_id>[0-9]+)/$', views.detail, name='detail'),
]

但是,当我将浏览器指向索引时,会出现以下错误:

NoReverseMatch at /

Reverse for 'detail' with arguments '(1,)' and keyword arguments '{}' not found.
1 pattern(s) tried: ['$(?P<blog_id>[0-9]+)/$']

错误详情突出显示模板的这一部分:

<a href="{% url "detail" blog.id %}">

这里发生了什么?我该如何解决?我正在使用 Django 1.8.4。

【问题讨论】:

  • '将我的浏览器指向索引'为'domain.tld/index???'或只是“domain.tld”或如何?
  • @hiroprotagonist 在localhost:8000。在我添加详细信息部分之前,首页工作正常。
  • 不确定是否需要,但您是否尝试将url(r'^/$', views.index, name='index'), 添加到您的网址?
  • @hiroprotagonist 刚试过,没啥区别。

标签: python django django-1.8


【解决方案1】:

您的主要urls.py 拼写错误,类似于。

url(r'^polls/$', include('polls.urls')),

你必须这样写

r'^polls/'. # Note please remove `$` in end

【讨论】:

  • 非常感谢,就是这样!
猜你喜欢
  • 1970-01-01
  • 2021-03-08
  • 2020-06-08
  • 2020-02-10
  • 2021-04-10
  • 1970-01-01
  • 1970-01-01
  • 2017-10-27
  • 1970-01-01
相关资源
最近更新 更多