Django:渲染时捕获NoReverseMatch:未找到带参数'()'和关键字参数'{}'的反向调用'*
错误信息:
Caught NoReverseMatch while rendering: Reverse for 'archive' with arguments '()' and keyword arguments '{}' not found.
Template error
In template /home/bravedick/Aptana Studio 3 Workspace/blog/templates/homepage/index.html, error at line 7
第7行:
6 <a href="{% url index %}">Index</a>
7 <a href="{% url archive %}">Archive</a>
8 <a href="{% url contacts %}">Contacts</a>
主urls.py文件:
from django.conf.urls.defaults import patterns, include, url
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Examples:
(r'^$', include('blog.apps.homepage.urls')),
# url(r'^$', 'blog.views.home', name='home'),
# url(r'^blog/', include('blog.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
)
我的urls.py文件:
from django.conf.urls.defaults import *
urlpatterns = patterns('blog.apps.homepage.views',
url(r'^$', 'index', name='index'),
url(r'^about/$', 'about', name='about'),
url(r'^archive/$', 'archive', name='archive'),
url(r'^contacts/$', 'contacts', name='contacts'),
)
视图:
from django.shortcuts import render_to_response
from blog.apps.data.models import Entry
def index(request):
entries = Entry.objects.published_entries().order_by('-id')
ctx = {'entries':entries}
return render_to_response("homepage/index.html", ctx)
def about(request):
return render_to_response("homepage/about.html")
def contacts(request):
return render_to_response("homepage/contacts.html")
def archive(request):
return render_to_response("homepage/archive.html")
1 个回答
9
我看到你主要的URL配置有一个明显的问题。你在包含语句中用了一个‘$’符号,这个符号表示URL的结束。
那一行应该改成:
(r'^', include('blog.apps.homepage.urls')),
这里有关于 include
的 文档。
另外,检查一下 blog.apps.homepage.urls
是否是一个有效的导入路径。你可以运行以下命令打开Django的命令行:
./manage.py shell
然后输入:
from blog.apps.homepage import urls
如果你遇到导入错误,试着找出正确的导入路径是什么,然后在你的包含语句中使用这个路径。