让我先说一下,我在这个论坛上已经阅读了很多与此例外相关的主题,但仍无法找到解决方案。不知道我错过了什么。
以下是我的应用中的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 :(得分:1)
在您的基础urls.py中,您包含应用程序的url和命名空间,因此在模板中您也应该使用命名空间。在您的情况下:
<a href="{% url 'people:people_list' %}">Index</a>
。
有关命名空间的更多信息:https://docs.djangoproject.com/en/1.6/topics/http/urls/#url-namespaces。