2009-07-15 34 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

相關問題