2009-07-15 86 views
3

我按照Django教程,在本教程的第4部分遇到错误。我得到了我正在编写投票视图的部分,它使用反向重定向到另一个视图。出于某种原因,反向失败,出现以下异常:Django:反向函数失败,出现异常

进口()参数1个必须是字符串,而不是instancemethod

目前我的项目的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'), 
) 

而且投票的看法是:(我已经简化它仅具有错误的行)

def vote(request, poll_id): 
    return HttpResponseRedirect(reverse('mysite.polls.views.results', args=(1,))) 

当我删除管理员网址,该项目的urls.py包括,即使它成为:

urlpatterns = patterns('', 
    (r'^polls/', include('mysite.polls.urls')), 
#(r'^admin/(.*)', include(admin.site.root)), 
) 

它的工作原理。

我试过这么多东西,不明白我做错了什么。

回答

6

在过去的几个版本中,包含管理网址的方式已经改变了几次。很可能您正在使用您安装的Django版本的错误说明。

如果您正在使用当前中继线 - 即不是正式版本 - 那么http://docs.djangoproject.com/en/dev/的文档是正确的。

但是,如果您使用的是1.0.2,那么您应该按照页面顶部的链接到http://docs.djangoproject.com/en/1.0/

+0

天才! :)我所要做的就是将url模式中包含的管理网址更改为: (r'^ admin /(.*)',admin.site.root), 而不是: (r'^ admin/(。*)',包括(admin.site.root)), 谢谢! – arikfr 2009-07-15 06:58:02

相关问题