Django: reverse函数抛出异常
我正在跟着Django的教程学习,但在教程的第4部分遇到了一个错误。我到了写vote视图的地方,这个视图使用reverse来跳转到另一个视图。结果,reverse出错了,报了一个这样的异常:
import() 的第一个参数必须是字符串,而不是实例方法
目前我项目中的urls.py文件看起来是这样的:
from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r'^polls/', include('mysite.polls.urls')),
(r'^admin/(.*)', include(admin.site.root)),
)
而应用的urls.py是:
from django.conf.urls.defaults import *
urlpatterns = patterns('mysite.polls.views',
(r'^$', 'index'),
(r'^(?P<poll_id>\d+)/$', 'details'),
(r'^(?P<poll_id>\d+)/results/$', 'results'),
(r'^(?P<poll_id>\d+)/vote/$', 'vote'),
)
然后是vote视图:(我把它简化成只有出错的那一行)
def vote(request, poll_id):
return HttpResponseRedirect(reverse('mysite.polls.views.results', args=(1,)))
当我从项目的urls.py中去掉admin的url包含时,也就是变成:
urlpatterns = patterns('',
(r'^polls/', include('mysite.polls.urls')),
#(r'^admin/(.*)', include(admin.site.root)),
)
这样就可以正常工作了。
我尝试了很多方法,但就是搞不懂我哪里出错了。
1 个回答
6
在过去的几个版本中,添加管理员网址的方法有过几次变化。你可能在使用与你安装的Django版本不匹配的说明。
如果你正在使用最新的开发版本,也就是还不是正式发布的版本,那么可以参考这个网址的文档:http://docs.djangoproject.com/en/dev/。
但是,如果你使用的是1.0.2版本,那么应该按照页面顶部的链接去查看这个网址的文档:http://docs.djangoproject.com/en/1.0/。