Как перенаправить пользователей после смены пароля в Django 2? - PullRequest
0 голосов
/ 15 октября 2019

У меня есть представление смены пароля в моем проекте. Вместо Django password_change_done/done/ по умолчанию я хочу, чтобы пользователи перенаправлялись на мою пользовательскую страницу, например на домашнюю страницу. Для входа нам нужно отредактировать настройки и добавить LOGIN_REDIRECT_URL. Есть ли что-то вроде PASSWORD_CHANGE_REDIRECT_URL, которое мы можем указать в нашем файле settings.py?

Это мои шаблоны URL

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('mainapp.urls')),
    path('login/', auth_views.LoginView.as_view(template_name='users/login.html'), name="login"),
    path('logout/', auth_views.LogoutView.as_view(template_name='users/logout.html'), name="logout"),
    path('password_reset/', auth_views.PasswordResetView.as_view(template_name='users/password_reset.html'), name="password_reset"),
    path('password_reset/done/', auth_views.PasswordResetDoneView.as_view(template_name='users/password_reset_done.html'), name="password_reset_done"),
    path('password_reset_confirm/<uidb64>/<token>', auth_views.PasswordResetConfirmView.as_view(template_name='users/password_reset_confirm.html'), name="password_reset_confirm"),
    path('password_reset_complete/', auth_views.PasswordResetCompleteView.as_view(template_name='users/password_reset_complete.html'), name="password_reset_complete"),
    path('change_password/', auth_views.PasswordChangeView.as_view(template_name='users/change_password.html'), name="password_change"),
    path('password_change_done/done/', auth_views.PasswordChangeDoneView.as_view(template_name='users/password_change_done.html'), name="password_change_done"),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Я хочу, чтобы пользователи перенаправлялись в пользовательский вид, а непо умолчанию.

Ответы [ 2 ]

2 голосов
/ 15 октября 2019

Вы можете указать URL перенаправления в PasswordChangeView .

path(
    'change_password/',
    auth_views.PasswordChangeView.as_view(
        template_name='users/change_password.html',
        success_url="<YOUR URL HERE>"
    ),
    name="password_change"
)
2 голосов
/ 15 октября 2019

Вы можете использовать аргумент success_url. Например:

auth_views.YourView.as_view(success_url=reverse_lazy('your-success_url'), name='....')

См. документы для получения дополнительной информации

...