После обновления до Django 2.1.3 я заметил «Забыли пароль или имя пользователя?»ссылка отсутствовала на странице входа администратора.После некоторых исследований я обнаружил, что модуль django.contrib.auth.urls.py
использовал имя password_reset
для URL-адреса сброса, в то время как в шаблоне django/contrib/admin/templates/admin/login.html
URL-адрес имел имя admin_password_reset
:
django.contrib.auth.urls.py (строка 16)
path('password_reset/', views.PasswordResetView.as_view(), name='password_reset'),
django / contrib / admin / templates / admin / login.html (начиная со строки 54)
{% url 'admin_password_reset' as password_reset_url %}
{% if password_reset_url %}
<div class="password-reset-link">
<a href="{{ password_reset_url }}">{% trans 'Forgotten your password or username?' %}</a>
</div>
{% endif %}
Когда я изменил admin_password_reset
на password_reset
в Django login.html
, ссылка появилась на странице входа в систему и работала, как и ожидалось.
В моем urls.py
у меня есть:
path('lodging/', include('django.contrib.auth.urls')),
Мой проект не имеет других изменений в системе аутентификации.Это ошибка или я что-то упустил?
Обновление
Я проверил один из моих старых проектов Django (v1.11), и существует то же самое: login.html
показывает admin_password_reset
и auth.urls
показывает password_reset
.Кроме того, ссылка «Забыли пароль» не отображается на странице входа.Кроме того, «grepping» для admin_password_reset
во всем исходном коде Django возвращает только файл login.html
.
Так что я точно что-то не так делаю.