2012-06-06 5 views
11

tôi nhận được ImportError "No module named django.contrib.auth" cả khi tôi cố gắng để sử dụng chức năng django.shortcutsredirect và khi tôi cố gắng sử dụng:Không mô-đun tên django.contrib.auth khi sử dụng những điều mà chuyển hướng

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

tôi con số đó không thể là một sự trùng hợp ngẫu nhiên mà nơi duy nhất tôi gặp phải lỗi này là ở những nơi trang được chuyển hướng, nhưng có thể nó được. Tôi biết rằng người dùng không thực sự bị đăng xuất, do đó, lỗi xảy ra trước khi bạn nhận được bất kỳ mã chuyển hướng nào.

Dưới đây là tệp urls.py của tôi.

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')), 
) 
+0

Cấu hình url đầy đủ là gì? Bạn có [tiền tố xem] (https://docs.djangoproject.com/en/dev/topics/http/urls/#the-view-prefix) được xác định không? – Alasdair

Trả lời

28

Bạn đang trộn các tiền tố URL trong urlpatterns.

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

Django cố gắng tìm xem tương đối so với tiền tố URL nhất định, trong trường hợp của bạn 'karma.views'. Bên trong mô-đun này, không có 'django.contrib.auth.views.logout', do đó bạn nhận được ImportError.

Di chuyển URL logout đến một khối thứ hai, ví dụ .:

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

Điều đó sẽ giải quyết vấn đề của bạn.

+0

Tôi đã thử điều này và sự cố vẫn tiếp diễn. – Jason

+0

Đã cập nhật bài đăng của tôi với nó. – Jason

+0

Cập nhật câu trả lời của tôi, hy vọng rằng sẽ giúp ... – cfedermann