2010-02-16 112 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