2012-04-13 83 views
5

試圖更新到1.4的Django後進入我的管理面板,當我得到這個錯誤 - 錯誤是:的Django 1.4和NoReverseMatch在/管理/錯誤

NoReverseMatch at /admin/ 
Reverse for 'logout' with arguments '()' and keyword arguments '{}' not found. 

我最好的猜測是,我確定註銷urlpattern與管理面板試圖創建的某個方式有衝突嗎?雖然,它應該創建/管理/註銷,對吧?我沒有更新我的ADMIN_MEDIA_PREFIX STATIC_URL並將它們移動到一個名爲admin的子文件夾,但這似乎沒有什麼區別。

在我的urls.py,我有:

from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    ... 
    ('^logout/$', RedirectView.as_view(url='/login/index.html')), 
    (r'^login/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/fullpath/to/media/login'}), 
    (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/fullpath/to/media/static'}), 
    (r'^admin/(.*)', include(admin.site.urls)), 
) 

而在我的settings.py,我有:

STATIC_ROOT = '/fullpath/to/myapp/media/static/' 
STATIC_URL = '/static/' 

INSTALLED_APPS = (
    'django.contrib.auth', 
    ... 
    'django.contrib.admin', 
) 

回答

11
(r'^admin/(.*)', include(admin.site.urls)), 

應該

(r'^admin/', include(admin.site.urls)), 

( 。*)會將所有以管理員身份作爲觀點論點的東西吃掉。

另外,你知道什麼叫reverse('logout')?在我的本地1.4安裝中,管理員是命名空間,我必須致電reverse('admin:logout')

+2

謝謝,(。*)是問題。我可能一直在閱讀錯誤的錯誤 - 在它工作之後,我嘗試添加(。*),並在反向查找錯誤中得到了另一個錯誤,並且沒有顯示admin:前綴,回溯顯示它發生在一個反向('admin:xxx) – 2012-04-13 20:20:57

+2

我有一個非常類似的問題,但我有'r'^ admin/$','。將其更改回'r'^ admin /,'解決了問題。 – gregoltsov 2013-11-01 12:29:47