2015-08-24 1 views
0

Я следую учебнику Django, а в third part они создают ссылку в шаблоне. Теперь, я последовал и написал шаблон:«NoReverseMatch at /» при попытке создать ссылку в шаблоне

<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.

+0

Пунктом мой браузер с индексом "как 'HTTP: //domain.tld/index ???' или просто «http: //domain.tld/» или как? –

+0

@hiroprotagonist at http: // localhost: 8000 /. Прежде чем я добавил часть детали, работала первая страница. – manabreak

+0

не уверен, что это необходимо, но вы попробовали добавить 'url (r '^/$', views.index, name = 'index'),' к вашим URL-адресам? –

ответ

0

Вы ошибаетесь в своем главном urls.py, что-то типа.

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

Вы должны написать как этот

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

Спасибо большое, вот оно! – manabreak