Как добавить функцию забытого пароля на сайт администратора Django? С вариантами электронной почты/секретного вопроса? Есть ли какой-либо подключаемый модуль/расширение?
Добавление функции забытого пароля на сайт администратора Django
Ответы (2)
Все они там встроены в 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'),
Они перечислены в документации. конечно.
Вам нужно будет предоставить свои собственные шаблоны.
url(r'^accounts/', include('registration.urls'))
к вашему собственному urls.py
- person Lie Ryan; 07.01.2012
На самом деле, начиная с 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 Наличие именованного URL-адреса admin_password_reset вызовет сообщение «забыли пароль?» ссылка для отображения на странице входа администратора по умолчанию под полем пароля