NoReverseMatch同时呈现Django管理员屏幕?
问题描述:
运行Python 2.5 Django 1.2.4NoReverseMatch同时呈现Django管理员屏幕?
测试基本设置时出现错误信息。第一次我在浏览器中输入/管理URL,我得到错误信息:
在模板C:\ DD \ ddproject的\ src \模板\ ADMIN \ base_site.html,错误在第10行
在呈现时捕获NoReverseMatch:未找到参数'()'和关键字参数'{}'的'django.contrib.auth.views.logout'反向。
异常位置:C:\ Python25 \ LIB \站点包\ Django的\模板\ defaulttags.py在渲染,线385
这里是在行代码10
<a href="{% url django.contrib.auth.views.logout %}">{% trans 'Log out' %}</a>
我我不愿意包括我的整个settings.py
文件。但是,为了回答你接下来的问题,这里的相关设置:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
ROOT_URLCONF = 'src.urls'
TEMPLATE_DIRS = (
"/dd/ddproject/src/templates",
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.admin',
'django.contrib.admindocs',
)
答
如果你包括你的问题settings.py
而不会被提示,你不能太大的新手:-)
如果您并未定义自己的登录/注销网址,只记得在您的urls.py
文件中包含auth
网址。最好做这最后:
from django.conf.urls.defaults import *
urlpatterns = patterns('',
# ... other URL defs and includes here ....
(r'', include('django.contrib.auth.urls')),
)
答
什么固定的这对我来说,是settings.py使用在INSTALLED_APPS绝对路径。所以:
'myproject.myapp',
,而不是
'myapp',
答
您需要在urls.py添加:
#Session management
(r'^login/$','django.contrib.auth.views.login'),
或者,也许你正在使用
(r'^admin$',include(admin.site.urls)),
(r'^admin/$',include(admin.site.urls)),
代替:
(r'^admin',include(admin.site.urls)),
答
我加入这行到我的urls.py和问题解决了: url('', include('django.contrib.auth.urls')),
我使用Django 1.5
谢谢,贾勒特。不,我没有在我的URL配置中的身份验证网址。我有一个r''正则表达式已经定义,带我到我的问候屏幕(我认为它是一个通配符,因为任何输入的url没有匹配的正则表达式。) 你是说我可以有2个urls.py中使用r''正则表达式定义的URL? – SlowpokeJoe 2011-05-04 23:41:40
您建议的修复工作,Jarret。我现在看到了什么是正则表达式。让我从'django.contrib.auth.urls' 拉更多的网址谢谢! – SlowpokeJoe 2011-05-05 00:10:47