После отправки регистрационной формы я хочу, чтобы пользователь перешел на страницу благодарности / подтверждения.
Регистрационная форма находится в / register /, а страница подтверждения - в / register / verify /
Я понимаю, что могу сделать это следующим образом:
if register_form.is_valid():
#save data etc.
#SCENARIO 1
#go to the confirmation view
return register_confirm(request)
Это отображает страницу подтверждения в браузере, но фактический URL НЕ меняется с / register / на /register/confirm/.
#SCENARIO 2
#redirect to confirmation view
return redirect('register_confirm')
В браузере отображается страница подтверждения, и фактический URL-адрес ИЗМЕНЯЕТСЯ с / зарегистрировать / на / зарегистрировать / подтвердить / (РЕДАКТИРОВАТЬ после @Borut comment)
#SCENARIO 3
#redirect to URL
return redirect('confirm/')
Отображаетсястраница подтверждения в браузере и фактический URL-адрес ИЗМЕНЯЮТСЯ с / регистрация / на / регистрация / подтверждение /
Так что сценарии в пунктах 2 и 3, приведенных выше, делают то, что я хочу, с точки зрения того, что пользователям показывают подтверждениестраница и URL меняются в браузере.(Для меня важно, что URL-адрес изменяется в браузере по нескольким причинам, но не в последнюю очередь потому, что я хочу, чтобы моя аналитика записывала попадания на страницу подтверждения).
Однако я действительно недумаю, что любое использование «перенаправления» является правильным в этом сценарии.Я просто хочу переместить пользователя на страницу подтверждения (чтобы избежать случайной повторной отправки формы, если они нажмут кнопку «Обновить»).Насколько я понимаю, перенаправления дают, например, код состояния 301 или 302. Это означает, что страница была перемещена либо временно, либо постоянно.
В сценарии простого перемещения пользователя на новую страницу (т.е.ссылки, без необходимости фактически щелкать ссылку), страница регистрации и подтверждения должна иметь код состояния 200. Я не хочу, чтобы поисковые системы думали, что я перенаправляю / register / URL, например, с 301 илиКод состояния 302.
Может кто-нибудь объяснить, как переместить пользователя на новую страницу, с другим URL-адресом, отображаемым в окне браузера, но без использования перенаправления или, по крайней мере, не давая 30xкод состояния.
Спасибо!