Django 1.4和NoreversMatch at/admin/

2024-09-29 00:22:38 发布

您现在位置:Python中文网/ 问答频道 /正文

在更新到Django 1.4后尝试访问我的管理面板时出现此错误-错误为:

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

我最好的猜测是,我正在定义一个注销urlpattern,它与管理面板试图创建的模式有某种冲突?不过,应该是创建/管理/注销,对吧?我确实更新了ADMIN_MEDIA_前缀为STATIC_URL,并将它们移到一个名为ADMIN的子文件夹中,但这似乎没有什么区别。

在我的url.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',
)

Tags: todjango面板urladmin错误loginstatic
1条回答
网友
1楼 · 发布于 2024-09-29 00:22:38
(r'^admin/(.*)', include(admin.site.urls)),

应该是

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

(.*)将吃掉admin之后作为视图参数的所有内容。

另外,你知道什么叫reverse('logout')?在我的本地1.4安装中,管理员是命名空间的,我必须调用reverse('admin:logout')

相关问题 更多 >