12

関数を使おうとすると、次のImportError "No module named django.contrib.auth"両方が表示されます。django.shortcuts redirect

(r'^logout/$', 'django.contrib.auth.views.logout', {'next_page': '/'}),

このエラーが発生するのは、ページがリダイレクトされる場所だけであるというのは偶然ではないと思いますが、おそらくそうです。ユーザーが実際にログアウトしていないことはわかっているので、リダイレクトコードに到達する前にエラーが発生します。

以下は私の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')),
)
4

1 に答える 1

28

でURLプレフィックスを混同していますurlpatterns

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

Djangoは、あなたの場合、指定されたURLプレフィックスに関連するビューを見つけようとします'karma.views'。このモジュール内には、がない'django.contrib.auth.views.logout'ため、を取得しImportErrorます。

ログアウトURLを2番目のブロックに移動します。例:

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

これで問題は解決するはずです。

于 2012-06-06T09:24:54.040 に答える