Добавление функции забытого пароля на сайт администратора Django - PullRequest
17 голосов
/ 16 февраля 2010

Как добавить функцию забытого пароля на сайт администратора Django? С опциями электронной почты / секретного вопроса? Есть ли в наличии плагин / расширение?

Ответы [ 2 ]

29 голосов
/ 16 февраля 2010

Все они построены в Джанго. Просто добавьте соответствующие шаблоны 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'),

Они перечислены в документации , конечно.

Вы должны будете предоставить свои собственные шаблоны.

6 голосов
/ 03 июля 2013

На самом деле, начиная с Django 1.4, есть простой способ получить ссылку на забытый пароль, которая появляется прямо на странице входа администратора (звучит как точный вопрос):

https://docs.djangoproject.com/en/2.1/ref/contrib/admin/#adding-a-password-reset-feature

Вы можете добавить функцию сброса пароля на сайт администратора, добавив несколько линии на ваш 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'), 

(это предполагает вы добавили администратора в admin / и требует, чтобы вы указали URL начиная с ^ admin / до строки, включающей приложение администратора сам).

Изменено в Django 1.4 Наличие admin_password_reset с именем URL приведет к появлению ссылки «забыли пароль?» На страница входа администратора по умолчанию под полем пароля

...