redirect
- это просто оболочка вокруг HttpResponseRedirect
, которая автоматически вызывает reverse
, чтобы вы создали URL для перенаправления. В результате параметры, которые вы передаете в него, не являются произвольными, они должны быть такими же, как и в reverse
, и, в частности, только те, которые необходимы для создания URL.
У многих людей возникают проблемы с пониманием того, что данные нельзя просто произвольно передать в представление. HTTP - это протокол без сохранения состояния: каждый запрос существует сам по себе, как если бы пользователь никогда не был на любой другой странице сайта. Концепция сеанса была создана для того, чтобы обеспечить ощущение «состояния» для связной единицы, такой как сайт. В сеансах данные хранятся в некоторой форме постоянного хранилища и «ключом» для поиска этих данных, передаваемых клиенту (обычно браузеру пользователя). При следующей загрузке страницы клиент отправляет ключ обратно на сервер, а сервер использует его для поиска данных, чтобы создать видимость состояния.
В результате, если вам нужны данные из одного представления, доступные в другом, вам необходимо добавить их в сеанс, выполнить перенаправление и найти данные в сеансе из следующего представления.