使用重定向的东西时没有名为django.contrib.auth的模块

Jas*_*son 11 django redirect importerror

ImportError "No module named django.contrib.auth"当我尝试使用该django.shortcuts redirect函数并尝试使用时,我得到了两者:

(r'^logout/$', 'django.contrib.auth.views.logout', {'next_page': '/'}),
Run Code Online (Sandbox Code Playgroud)

我认为,我遇到此错误的唯一地方是在重定向页面的地方,但也许是这样,这不是巧合.我知道用户实际上并未注销,因此在您获得任何重定向代码之前就会发生错误.

下面是我的urls.py文件.

import django.contrib.auth.views
from django.conf.urls.defaults import *
import django.contrib.auth

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('karma.views',
(r'^$', 'homepage'),
(r'^logout/$', 'django.contrib.auth.views.logout', {'next_page': '/'}),
(r"^opportunities/nearby$", 'draw_map'),


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

cfe*_*ann 28

你正在混淆你的URL前缀urlpatterns.

urlpatterns = patterns('karma.views',
  (r'^$', 'homepage'),
  (r'^logout/$', 'django.contrib.auth.views.logout', {'next_page': '/'}),
  (r"^opportunities/nearby$", 'draw_map'),
)
Run Code Online (Sandbox Code Playgroud)

在您的情况下,Django尝试查找相对于给定URL前缀的视图'karma.views'.在这个模块里面,没有'django.contrib.auth.views.logout',所以你得到了ImportError.

将注销URL移动到第二个块,例如:

urlpatterns += patterns('',
  (r'^logout/$', 'django.contrib.auth.views.logout', {'next_page': '/'}),
)
Run Code Online (Sandbox Code Playgroud)

这应该可以解决您的问题.