2014-09-02 3 views
0

Позвольте мне сказать, что я прочитал много потоков, связанных с этим исключением на этом форуме, и до сих пор не смог найти решение. Не уверен, что мне не хватает.Исключение NoReverseMatch в простом приложении Django

Вот urls.py в мое приложение:

from django.conf.urls import patterns, url, include 
from django.core.urlresolvers import reverse 
urlpatterns = patterns('', 
     url(r'^$', PeopleList.as_view(), name='people_list'), 
    ) 

И это шаблон кода, который генерирует сообщение об ошибке:

<a href="{% url 'people_list' %}">Index</a> 

Я получаю ошибку на

Reverse for 'people_list' with arguments '()' 
and keyword arguments '{}' not found. 0 pattern(s) tried: [] 

Я прочитал много сообщений об этой ошибке и попробовал несколько вещей (перезапуск веб-сервера, переход на двойные кавычки/одинарные кавычки/без кавычек и т. д.). Но я не вижу ошибки.

Этот код копируется из a CRUD example, и я использую django 1.6.4.

Код мнение:

from django.views.generic.list import ListView 
from people.models import Category, Person 
from django.views.generic.edit import CreateView, UpdateView, DeleteView 
from people.forms import CategoryForm, PersonForm 
from django.views.generic.detail import DetailView 
from django.shortcuts import get_object_or_404 
from django.core.urlresolvers import reverse 

class PeopleList(PersonMixin, ListView): 
    template_name = 'people/object_list.html' 

Собственно код по ссылке: http://www.pythondiary.com/tutorials/simple-crud-app-django.html. Но я использую django 1.6.

Об изменении, что я сделал это из

from django.conf.urls.defaults import patterns, url, include 

я изменил

from django.conf.urls import patterns, url, include 
+0

Не могли бы вы поделиться просмотром или кодом формы, который вы используете, чтобы передать '' people_list'' в ваш шаблон? – br3w5

+0

ssbrewster ответил на ваш вопрос, добавив код. Я также дал ссылку на учебник, где я скопировал этот код. – mht

+0

@mht, проверьте свой ROOT_URLCONF в settings.py. Это соответствует вашему urls.py? – stalk

ответ

1

В вашей базе urls.py вы включили URLs приложение с пространством имен, так и в шаблоне, вы должны использовать пространство имен слишком .В вашем случае: <a href="{% url 'people:people_list' %}">Index</a>.

Подробнее об объектах: https://docs.djangoproject.com/en/1.6/topics/http/urls/#url-namespaces.

+0

Кроме того, люди должны быть уверены, что используйте двоеточие после пространства имен URL-адресов, в этом случае 'people:'. Я потратил значительное время на отладку, когда вместо этого использовал точку ('.'). –