2012-04-13 16 views
5

otrzymuję ten błąd, gdy próbuje uzyskać dostęp do panelu administratora po uaktualnieniu do Django 1.4 - błąd jest:Django 1.4 i NoReverseMatch w/admin/błędu

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

Mój najlepszy przypuszczenie to, że jestem definiowania URL-a wylogowania, który jest w jakiś sposób sprzeczny z tym, który panel administracyjny próbuje utworzyć? Chociaż powinien on tworzyć/admin/logout, prawda? Zaktualizowałem ADMIN_MEDIA_PREFIX do STATIC_URL i przeniosłem je do podfolderu o nazwie admin, ale to nie miało znaczenia.

W moim urls.py mam:

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

I w moim settings.py mam:

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

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

Odpowiedz

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

Powinny być

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

(. *) zjadłaby wszystko, co następuje po admina jako argument widoku.

Wiesz również, co wywołuje reverse('logout')? W mojej lokalnej instalacji 1.4 administrator ma nazwę i muszę zadzwonić pod numer reverse('admin:logout')

+2

Dzięki, (. *) Był problem. Być może błędnie odczytałem błąd - po uruchomieniu spróbowałem dodać (. *) Z powrotem i otrzymałem kolejny błąd z błędem odwrotnego wyszukiwania, a nie pokazałem prefiksu admin: traceback pokazało, że wystąpiło, gdy rewers ('admin: xxx) –

+2

Miałem bardzo podobny problem, ale miałem 'r'^admin/$ ','. Zmiana z powrotem na "r"^admin /, "naprawił problem. – gregoltsov

Powiązane problemy