Получение ошибки DisallowedRedirect с представлением смены пароля - Django
views.py
@login_required
def mudar_senha(request):
if request.method == 'POST':
print(request)
form = PasswordChangeForm(user=request.user, data=request.POST)
if form.is_valid():
user = form.save()
update_session_auth_hash(request, user) # Importante para não deslogar o usuário após a mudança de senha
return HttpResponseRedirect(reverse('users:perfil'))
else:
form = PasswordChangeForm(user=request.user)
return render(request, 'users/editar_usuario.html', {'form': form})
urls.py
"""Define padrões de URL para users"""
from django.contrib.auth.views import LoginView, LogoutView, PasswordChangeView
from django.urls import path
# Importa o modúlo viws para a pasta do app "."
from . import views
app_name = "users"
urlpatterns = [
path('login/' , LoginView.as_view(template_name='users/login.html'), name='login'),
path('logout/', LogoutView.as_view(next_page='learningLogApp:index'), name='logout'),
path('perfil/', views.perfil, name='perfil'),
path('registrar/', views.registrar, name='registrar'),
path('editar/', views.editar_usuario, name='editar_usuario'),
path('mudar_senha/', PasswordChangeView.as_view(success_url='learningLogApp:index'), name='mudar_senha'),
]
** Тип исключения: **DisallowedRedirect
попробуйте это:
return HttpResponseRedirect(reverse('users:perfil'))
и это:
sucess_url = reverse_lazy(request, 'users/perfil.html')
и это:
return reverse_lazy(request, 'users/perfil.html')
и это:
return reverse_lazy(request, 'users:perfil')
и это:
return reverse_lazy('users:perfil')
и это:
return redirect('users:perfil')
и это:
return HttpResponseRedirect(reverse('learningLogApp:index'))
и это:
return redirect('users:perfil')
Одинаковая ошибка во всех случаях.
Ps. Пароль АРЕ меняется. Проблема в редиректе! (Значение исключения:
)Небезопасное перенаправление на URL с протоколом)