2010-07-29 27 views
12

Khi người dùng không đăng nhập Tôi đang cố gắng nhập các khu vực của trang web cho người dùng được xác thực chỉ tôi nên được chuyển hướng đến trang đăng nhập của mình với ?next= và tại đây LOGIN_REDIRECT_URL của tôi từ cài đặt. Nhưng thay vì /users/login trong thanh địa chỉ của tôi /accounts/login được hiển thị. Tôi nên thay đổi điều gì để có được url đúng?Xác thực Django - sai chuyển hướng url để đăng nhập trang

cài đặt: url

AUTH_PROFILE_MODULE = 'accounts.UserProfile' 
LOGIN_REDIRECT_URL = '/user/profile/' 

dự án:

import accounts.urls as regUrls 

urlpatterns = patterns("", 
         (...)      
         (r'^user/', include(regUrls)),      
         ) 

chiếm ứng dụng urls.py:

urlpatterns = patterns('', 
         url(r'^profile/$', profile_edit , name='user_profile'), 
         url(r'^friends_list/$', friends_list), 
         (r'', include('accounts.auth_urls')), 
         ) 

và chiếm auth_urls.py (mà chỉ đơn giản là URL cho contrib.auth):

from django.conf.urls.defaults import * 
from django.views.generic.simple import direct_to_template 
from django.contrib.auth import views as auth_views 

    urlpatterns = patterns('', 
          url(r'^login/$', 
           auth_views.login, 
           {'template_name': 'user/login_logout_register/login.html'}, 
           name='auth_login'), 
          url(r'^logout/$', 
           auth_views.logout, 
           {'template_name': 'user/login_logout_register/logout.html'}, 
           name='auth_logout'),      
          url(r'^password/change/$', 
           auth_views.password_change, 
           {'template_name': 'user/login_logout_register/password_change_form.html'}, 
           name='auth_password_change'), 
          url(r'^password/change/done/$', 
           auth_views.password_change_done, 
           {'template_name': 'user/login_logout_register/password_change_done.html'}, 
           name='auth_password_change_done'),      
          url(r'^password/reset/$', 
           auth_views.password_reset, 
           {'template_name': 'user/login_logout_register/password_reset_form.html', 
           'email_template_name': 'user/login_logout_register/password_reset_email.html'}, 
           name='auth_password_reset'),      
          url(r'^password/reset/confirm/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 
           auth_views.password_reset_confirm, 
           {'template_name': 'user/login_logout_register/password_reset_confirm.html'}, 
           name='auth_password_reset_confirm'),      
          url(r'^password/reset/complete/$', 
           auth_views.password_reset_complete, 
           {'template_name': 'user/login_logout_register/password_reset_complete.html'}, 
           name='auth_password_reset_complete'),      
          url(r'^password/reset/done/$', 
           auth_views.password_reset_done, 
           {'template_name': 'user/login_logout_register/password_reset_done.html'}, 
           name='auth_password_reset_done'), 
          ) 

Nếu tôi nên dán bất kỳ thứ gì khác, chỉ cần cho tôi biết.

Trả lời

23

Bạn cần phải đặt LOGIN_URL trong cài đặt cũng như:

LOGIN_URL = '/user/login' 
+0

bây giờ tôi nhận được: 'http: // domain/user/profile/tiếp theo =/user/profile /% 3Fnext% 3D/user/profile /% 253Fnext% 253D/user/profile /% 25253 ... ':/ –

+0

LOGIN_URL phải là"/user/login "không phải"/user/profile ".. đã bỏ lỡ điều đó trong câu hỏi của bạn. Đã cập nhật ở trên. – ars

Các vấn đề liên quan