2010-02-16 108 views

回答

28

他們都在那裏建立在Django。只需添加相關的url模式。如下。

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

而且,哦,當你在它的時候,還要添加視圖和url模式來更改密碼。

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

他們當然在documentation上市。

您必須提供自己的模板。

+1

+1下謝謝!它也帶有電子郵件嗎? – Viet

+2

是的,它也發送電子郵件,相關的電子郵件ID。 –

+1

請注意,如果您使用的是django-registration應用程序,那麼您只需要包含django-registration的urls.py,即將'url(r'^ accounts /',include('registration.urls'))'添加到您的自己的urls.py –

4

其實因爲Django的1.4有一個簡單的方法在管理登錄頁面,以獲得忘記密碼鏈接直接出現(這聽起來像問確切的問題):

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

可以添加通過在您的URLconf中添加幾行 行來爲管理站點添加密碼重置功能。具體來說,加上這四種模式:

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

(這是假設 您添加在管理員管理員/,並要求你把網址 開始^管理員/,其中包括前行管理員應用程序 本身)。

改變在Django 1.4命名 URL將導致admin_password_reset的存在的「忘記密碼?」鏈接,出現在 默認的管理員登錄頁面密碼箱

+0

+1謝謝Stefano!問題是當我還在使用Django 1.2/1.3 :) – Viet

+0

@Viet認爲是這樣!但是,當一個新的更簡單的解決方案出現時,我甚至會對舊的答案進行更新! – Stefano