2012-04-13 11 views
5

sto ottenendo questo errore quando prova ad accedere al mio pannello di amministrazione dopo l'aggiornamento a Django 1.4 - L'errore è:Django 1.4 e NoReverseMatch a/admin/errore

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

La mia ipotesi migliore è che sto definendo un logout urlpattern che è in qualche modo in conflitto con quello che il pannello di amministrazione sta cercando di creare? Anche se dovrebbe creare/admin/logout, giusto? Ho aggiornato il mio ADMIN_MEDIA_PREFIX a STATIC_URL e li ho spostati in una sottocartella denominata admin, ma ciò non sembrava fare la differenza.

Nel mio urls.py, ho:

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)), 
) 

E nella mia settings.py, ho:

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

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

risposta

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

Dovrebbe essere

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

(. *) mangerebbe tutto ciò che segue admin come argomento della vista.

Inoltre, sai cosa sta chiamando reverse('logout')? Nella mia installazione 1.4 locale, l'admin è namespace e devo chiamare reverse('admin:logout')

+2

Grazie, (. *) Era il problema. Potrei aver letto l'errore sbagliato - dopo che ha funzionato, ho provato ad aggiungere il (. *) Di nuovo, e ottenuto un altro errore con l'errore di ricerca inversa, e non ha mostrato l'amministratore: prefisso il traceback ha mostrato che si verificano quando un inverso ('admin: xxx) –

+2

Ho avuto un problema molto simile, ma ho avuto 'r'^admin/$ ','. Cambiandolo di nuovo in 'r '^ admin /,' risolto il problema. – gregoltsov

Problemi correlati