2010-02-16 42 views

Trả lời

28

Tất cả đều được tích hợp sẵn trong django. Chỉ cần thêm các mẫu url có liên quan. Như sau.

from django.contrib.auth import views as auth_views 

patterns+=('', 
url(r'^passreset/$',auth_views.password_reset,name='forgot_password1'), 
url(r'^passresetdone/$',auth_views.password_reset_done,name='forgot_password2'), 
url(r'^passresetconfirm/(?P<uidb36>[-\w]+)/(?P<token>[-\w]+)/$',auth_views.password_reset_confirm,name='forgot_password3'), 
url(r'^passresetcomplete/$',auth_views.password_reset_complete,name='forgot_password4'), 
) 

Và, trong khi bạn đang ở đó, cũng thêm các dạng xem và url để thay đổi mật khẩu.

url(r'^password/change/$', 
    auth_views.password_change, 
    name='auth_password_change'), 
url(r'^password/change/done/$', 
    auth_views.password_change_done, 
    name='auth_password_change_done'), 

Chúng được liệt kê trong documentation tất nhiên.

Bạn sẽ phải cung cấp các mẫu của riêng mình.

+1

1 cảm ơn! Nó cũng đi kèm với gửi email không? – Viet

+2

Vâng, nó cũng gửi email, các id email có liên quan. –

+1

lưu ý rằng nếu bạn đang sử dụng ứng dụng đăng ký django thì bạn chỉ cần bao gồm urls.py của django-đăng ký, tức là thêm 'url (r '^ accounts /', include ('registration.urls'))' vào own urls.py –

4

Trên thực tế kể từ Django 1,4 có một cách dễ dàng để có được những liên kết quên mật mã xuất hiện trực tiếp trong trang quản trị đăng nhập (mà âm thanh như các câu hỏi chính xác yêu cầu):

https://docs.djangoproject.com/en/1.4/ref/contrib/admin/#auth-password-reset

Bạn có thể thêm tính năng đặt lại mật khẩu cho trang quản trị bằng cách thêm một vài dòng vào URLconf của bạn. Cụ thể, thêm bốn mẫu:

url(r'^admin/password_reset/$', 
    'django.contrib.auth.views.password_reset', 
    name='admin_password_reset'), (r'^admin/password_reset/done/$', 
    'django.contrib.auth.views.password_reset_done'), 
(r'^reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', 
    'django.contrib.auth.views.password_reset_confirm'), 
(r'^reset/done/$', 
    'django.contrib.auth.views.password_reset_complete'), 

(Điều này giả định bạn đã thêm admin tại admin/và yêu cầu bạn đặt URL bắt đầu với^admin/trước dòng bao gồm các ứng dụng quản trị chính nó).

Thay đổi trong Django 1,4 Sự hiện diện của admin_password_reset tên URL sẽ gây ra một “quên mật khẩu của bạn?” Liên kết để xuất hiện trên các admin mặc định đăng nhập trang dưới mật khẩu hộp

+0

+1 Cảm ơn Stefano! Câu hỏi đã được hỏi khi tôi vẫn còn sử dụng Django 1.2/1.3 :) – Viet

+0

@Viet nghĩ như vậy! Nhưng tôi muốn làm mới ngay cả câu trả lời cũ khi một giải pháp mới dễ dàng hơn xuất hiện! – Stefano

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