2012-04-13 15 views
5

estoy recibiendo este error al intentar acceder a mi panel de administración después de actualizar a Django 1.4 - el error es:Django 1.4 y NoReverseMatch en/admin/error

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

Mi mejor conjetura es que estoy definiendo un logout urlpattern que de alguna manera está en conflicto con el que el panel de administración está tratando de crear? Aunque, debería estar creando/admin/logout, ¿verdad? Actualicé mi ADMIN_MEDIA_PREFIX a STATIC_URL y los moví a una subcarpeta llamada admin, pero eso no pareció marcar la diferencia.

En mi urls.py, tengo:

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

Y en mi settings.py, tengo:

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

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

Respuesta

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

Debe ser

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

(. *) se comería todo lo que siguiera a admin como argumento de vista.

Además, ¿sabe usted lo que llama reverse('logout')? En mi instalación local 1.4, el administrador está en el espacio de nombres y tengo que llamar al reverse('admin:logout')

+2

Gracias, el (. *) Fue el problema. Pude haber estado leyendo el error incorrectamente - después de que funcionó, traté de agregar el (. *) De nuevo, y obtuve otro error con el error de búsqueda inversa, y no se muestra el prefijo admin: el rastreo mostró que se produce cuando un reverso ('admin: xxx) –

+2

Tuve un problema muy similar, pero tenía 'r'^admin/$ ','. Cambiarlo a 'r '^ admin /,' solucionó el problema. – gregoltsov

Cuestiones relacionadas