Как я могу передать некоторую информацию в представление, не включая ее в URL (django newbie) - PullRequest
2 голосов
/ 10 февраля 2009

Я работаю над небольшим приложением django для сохранения отпечатков картин.

Клиенты переходят на эту страницу заказа, заполняют некоторую информацию (имя, адрес электронной почты, адрес и т. Д.), Выбирают номер печати, который они хотят зарезервировать, и нажимают кнопку заказа. При нажатии у меня есть мой django-код, хранящий всю информацию о клиенте в новом объекте OrderInfo, и он вызывает HttpResponseRedirect для моей страницы спасибо.

Я хотел бы, чтобы на этой странице благодарности содержались некоторые данные подтверждения, содержащиеся в OrderInfo (например, спасибо, {{name}}, за ваш заказ).

Моя первая идея заключалась в том, чтобы включить идентификатор OrderInfo в URL благодарности, но это позволит любому получить доступ к OrderInfo для любого идентификатора, который не подходит для конфиденциальности.

Вы можете посмотреть демо здесь: ссылка

Заранее спасибо!

1 Ответ

5 голосов
/ 10 февраля 2009

сначала убедитесь, что все представления, которые показывают что-то чувствительное, имеют декоратор @login_required и убедитесь, что на самом деле request.user имеет доступ к запрошенной информации.

Теперь, для вашего конкретного вопроса, вы можете поставить OrderInfo в сеансе dict. На самом деле может быть удобно скопировать туда весь объект, а не только его идентификатор.

также, если вы хотите, чтобы не-вошедшие пользователи могли делать все это, вам все равно придется как-то их идентифицировать. опять же, наиболее очевидный способ - интенсивно использовать сеанс для отслеживания пользователя.

...