Форум сайта python.su
Бюсь и гуглю, гуглю и бъюсь… ((
… над такой задачкой…
Есть:
- представление1, вызывается по корню из регулярки url… и возвращает страницу шаблона с формой
- форма в шаблоне (см. выше), которая POSTом отправляет значение, например name='Вася' на url по регулярке /calcname/
- представление2, вызывается по /calcname/ из регулярки url… и производит какие-то действия с переданной ему POSTом переменной name…
Так вот…
Не могу решить задачу чтобы представление2 после своей работы перенаправило на корень, НО с передачей параметра name POSTом… (((
Ну или если более обобщенно:
Нужно чтобы после работы представления2, юзера кинуть на корень, чтобы я в представлении1 уже в шаблоне вывел переменную name….
т.е. redirect - запросто кинет на корень, но параметр там можно передать только GETом, по моему…
render… и HttpRespons-ы… берут данные словарями, возвращают страницы не меняя урла… - т.е. та ки останется /calcname/
то же самое если напрямую вернуть представление1… - страница вернется правильная как и надо, НО урл так и останется /calcname/… ((
Чего я не догоняю нубским мозгом? (((
Спасибо!
ПС Если написал много непонятных слов - скажите - я кодом накидают пример….
Офлайн
Если вы хотите сделать редирект и передать при этом post данные, то: 1) можно сделать кастомный httpresponseredirect, со status_code=307, и возможно, браузер, когда увидит, что получил код 307 сделает редирект и передаст при этом те же post данные по новому адресу. Более надежный подход, пожалуй, использовать сессии. Сохранить необходимые данные в сессии и потом сделать обычный httpreponseredirect и в обработчике вытащить данные из сессии.
С помощью простого httpreponsereirect (не помню, statuscode=302 для него…) нельзя никак передать, точнее заставить браузер, выслать повторно post данные; В спецификации http 1.1 редирект такой “возможен” при status_code=307.
Офлайн
scidam
Более надежный подход, пожалуй, использовать сессии
Офлайн
Sdelayte_podskazku_imen
уткнулся в проблему когда защита формы ругалась, если после авторизации я обновлял страницу и повторно отправлял данные…
Офлайн