Django 1.4和NoReverseMatch at/admin/error

Ada*_*ris 5 python django django-admin

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

NoReverseMatch at /admin/
Reverse for 'logout' with arguments '()' and keyword arguments '{}' not found.
Run Code Online (Sandbox Code Playgroud)

我最好的猜测是,我正在定义一个注销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)),
)
Run Code Online (Sandbox Code Playgroud)

在我的settings.py中,我有:

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

INSTALLED_APPS = (
    'django.contrib.auth',
     ...
    'django.contrib.admin',
)
Run Code Online (Sandbox Code Playgroud)

Yuj*_*ita 11

(r'^admin/(.*)', include(admin.site.urls)),
Run Code Online (Sandbox Code Playgroud)

应该

(r'^admin/', include(admin.site.urls)),
Run Code Online (Sandbox Code Playgroud)

(.*)会占用admin之后的所有内容作为视图参数.

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

  • 谢谢,(.*)是问题所在.我可能一直在读错误 - 在它工作之后,我尝试重新添加(.*),并在反向查找错误时出现另一个错误,并且它没有显示admin:前缀,回溯显示它发生时反向('admin:xxx) (2认同)
  • 我有一个非常相似的问题,但我有'r'^ admin/$',`.将其更改回`r'^ admin /,`修复了问题. (2认同)