Django HttpResponseRedirect отправляет запрос, но на самом деле не выполняет его?
Я пытаюсь перенаправить пользователя на http://127.0.0.1:8000/register/Pro/success после успешной регистрации.
Вот мой код URLs:
from accounts import views
from django.urls import path,re_path
from django.contrib.auth import views as auth_views
urlpatterns = [
# path('signup',views.signup_user,name='signup'),
path('login', views.login_user, name="login"),
path('logout', views.logout_user,name='custom_logout'),
re_path(r'^password_reset/$', auth_views.PasswordResetView.as_view(),
name='password_reset'),
re_path(r'^password-reset/email-sent/$', auth_views.PasswordResetDoneView.as_view(),
name='password_reset_done'),
path('password-reset/<uidb64>/<token>/',
auth_views.PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
re_path(r'^password-reset/complete/$',
auth_views.PasswordResetCompleteView.as_view(),
name='password_reset_complete'),
path('register/<str:plan>/', views.register, name="register"),
path('register/<str:plan>/success', views.success, name="redirect")
]
А вот что я пытаюсь перенаправить с помощью:
return HttpResponseRedirect(f'/register/{plan}/success')
Это отправляет запрос get, но он отображается только на вкладке networks в инструментах разработчика, на самом деле он не отображается так же, как если бы вы перешли по URL вручную.
Как мне этого достичь?
Согласно вашему urls.py, вы можете использовать реверс следующим образом:
return HttpResponseRedirect(reverse('redirect', args=(plan,)))
Сначала необходимо импортировать обратную функцию в верхней части файла views.py:
from django.urls import reverse