5

Django 1.4 にアップデートした後、管理パネルにアクセスしようとすると、このエラーが発生します - エラーは次のとおりです。

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

私の最善の推測は、管理パネルが作成しようとしているものと何らかの形で競合するログアウト urlpattern を定義していることです。ただし、/admin/logout を作成する必要がありますよね? 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',
)
4

1 に答える 1

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

する必要があります

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

(.*) は、ビュー引数として admin に続くすべてのものを消費します。

また、何を呼んでいるか知っていますかreverse('logout')?私のローカル 1.4 インストールでは、管理者は名前空間があり、呼び出す必要がありますreverse('admin:logout')

于 2012-04-13T18:09:07.333 に答える