passreset 应用只是通过 urls.py 公开 django 视图,并调整登录模板以显示“忘记密码”链接。
内置的 django 密码重置视图和模板用于自我重置。我猜重置表单可能预先填充了不同用户的电子邮件地址(在查询字符串中),但您仍然需要进行调整,例如更改电子邮件模板 - “您收到这封电子邮件是因为您请求了密码为您的用户帐户重置”可能不是您想要的:
https://code.djangoproject.com/browser/django/trunk/django/contrib/admin/templates/registration/password_reset_email.html
因此,如果您还想包含自重置功能,则应该在不同的 URL 上公开视图。
像这样将 django 视图挂钩到 urls.py 中:
urlpatterns += patterns('django.contrib.auth.views',
url(r'^accounts/password/reset/$',
'password_reset',
name='password-reset'),
url(r'^accounts/password/reset/done/$',
'password_reset_done',
name='password-reset-done'),
url(r'^accounts/password/reset/confirm/(?P<uidb36>[-\w]+)/(?P<token>[-\w]+)/$',
'password_reset_confirm',
name='password-reset-confirm'),
url(r'^accounts/password/reset/complete/$',
'views.password_reset_complete',
name='password-reset-complete')
)
以及您想要进行调整的地方,例如传入您自己的电子邮件模板:
url(r'^/accounts/password/reset/$',
'password_reset',
{'email_template_name': 'my_templates/password_reset_email.html'}
name='password-reset'),
“password_reset”视图有更多可以调整的参数:
https://docs.djangoproject.com/en/dev/topics/auth/#module-django.contrib.auth.views
(出于您的目的,“post_reset_redirect”想到另一个)
要显示相应的链接,您可以更改用户管理员(小心,已注册 - 取消注册然后注册您自己的子类和附加链接字段)或 change_form 模板本身。
我不知道有哪个应用可以开箱即用,所以我赞成这个问题 :-)。