渲染Django管理界面时的NoReverseMatch?

时间:2011-05-04 21:56:07

标签: django rendering

运行Python 2.5 Django 1.2.4

测试基本设置时出现错误消息。我第一次在浏览器中输入/ admin URL时收到错误消息:

  

在模板c:\ dd \ ddproject \ src \ templates \ admin \ base_site.html中,第10行出错

     

渲染时捕获NoReverseMatch:反向'django.contrib.auth.views.logout',参数'()'和关键字参数'{}'未找到。

     

异常位置:C:\ Python25 \ lib \ site-packages \ django \ template \ defaulttags.py in render,第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',
 )

4 个答案:

答案 0 :(得分:2)

如果你在没有被提示的情况下在你的问题中包含settings.py,你就不能成为新手: - )

如果您没有定义自己的登录/退出网址,请记住在auth文件中加入urls.py网址。最好这样做:

from django.conf.urls.defaults import *

urlpatterns = patterns('',
    # ... other URL defs and includes here ....
    (r'', include('django.contrib.auth.urls')),
)

答案 1 :(得分:0)

为我解决这个问题的方法是在settings.py中使用INSTALLED_APPS中的绝对路径。所以:

'myproject.myapp',

而不是

'myapp',

答案 2 :(得分:0)

您需要添加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)),

答案 3 :(得分:0)

我将此行添加到我的urls.py并解决了问题: url('', include('django.contrib.auth.urls')), 我正在使用Django 1.5