haMMer
Июнь 4, 2009 12:22:13
Приветствую всех!
Подскажите, пожалуйста, есть ли в django (или других framework'ах на python) возможность создавать контекст привязанный к какой-либо последовательности страниц (аля wizard), таких контекстов может быть несколько одновременно в одной сессии и каждый из них имеет свое время жизни (например сессия живет 30 минут, conversation - 10 минут). Подобное реализовано в framework'е JBoss Seam и называется conversation scope
Пример.
Пользователь на сайте запустил wizard покупки товара, остановился на 3 шаге из 5 и параллельно в той же сессии запустил покупку еще одного или нескольких товаров. Если пользователь 10 минут не обращался к первой покупке - по ней проходит timeout на сервере и удаляется context, чтобы не засорял.
Понятно, что это можно напихать в session, но это некошерно, вдобавок, при этом невозможно вести отдельный timeout для conversation'а (wizard) как указано выше.
Заранее благодарен за ответ!
romankrv
Июнь 4, 2009 12:54:03
Конечно можно такое делать читайте документацию там все для этого есть.
haMMer
Июнь 4, 2009 12:58:10
romankrv
Конечно можно такое делать читайте документацию там все для этого есть.
Вы не могли бы, как говорится, “ткнуть носом” - у меня не получилось найти :(
Заранее благодарен!
Ferroman
Июнь 4, 2009 19:07:04
Form wizard для визарда. C таймаутом - не знаю, даже не понял - зачем.
haMMer
Июнь 5, 2009 05:53:56
Ferroman
Form wizard для визарда. C таймаутом - не знаю, даже не понял - зачем.
Спасибо!
Таймаут нужен, чтобы не забивать устаревшими данными сервер - поскольку в том же примере пользователь может открыть много “покупок” и ни одну не довести до конца и продолжать работать в этой сессии.
Возможно пример не очень показателен, поскольку эта функциональность больше востребована в вэб-приложениях для предприятия, например, CRM, ERP и т.д. где пользователь может держать активной сессию весь рабочий день, работать с одновременно открытыми несколькими окнами и начинать и не заканчивать большое кол-во визардов.
haMMer
Июнь 5, 2009 06:07:44
Form wizard - это все же не то, что хотелось - это получается одна страничка размазанная на несколько с одной финальной передачей к серверу.
А нужно, чтобы сервер управлял переключением в визарде на каждом этапе.
Александр Кошелев
Июнь 5, 2009 10:11:27
haMMer
Понятно, что это можно напихать в session, но это некошерно, вдобавок, при этом невозможно вести отдельный timeout для conversation'а (wizard) как указано выше.
Почему это плохо? Почему невозможно? В сессии можно хранить всё что угодно, следовательно структуру данных вы выбираете сами, а она вполне мождет содержать и таймуаты и всё что угодно ещё.
haMMer
А нужно, чтобы сервер управлял переключением в визарде на каждом этапе.
Ну так сделайте.