Форум сайта python.su
Доброго времени суток.
Есть длительная операция (3-5 минут), которая обрабатывается методом save модели. Форма создается из экземпляра модели. Операция состоит из нескольких этапов. Хотелось бы показывать пользователю, какой этап выполняется именно сейчас, чтоб он, бедняга, совсем не разуверился в жизни.
Средствами ajax когда-то делал, но как здесь эту возможность использовать, даже не представляю. Подтолкните в правильном направлении, пожалуйста…
Спасибо.
Обновлено: Сейчас во вьюшке создаю форму из класса формы, вся обработка только во вьюшке. Так что безмодельный вариант тоже интересен.
Отредактировано (Сен. 19, 2007 13:02:36)
Офлайн
jan2aryне очень хорошо. лучше это делать отдельным потоком, или вообще процессом по расписанию.
Есть длительная операция (3-5 минут), которая обрабатывается методом save модели
jan2aryА ничего не меняется, надо по таймеру обращаться к серверу за новой порцией информации о процессе выполения.
Средствами ajax когда-то делал, но как здесь эту возможность использовать, даже не представляю.
Офлайн
Так и сделал. View формы запускает отдельный поток, обрабатывающий запрос, форма же отдается сразу. Поток обработки сохраняет состояние обработки в SessionStore, а отдельное примитивное view отвечает на ajax-запросы о статусе от клиента, доставая состояние из SessionStore.
Вот :)
Офлайн
Вот только почему-то больше двух обработок в одной сессии (в нескольких табах фф, например) не хотят сохраняться в объекте сессии. Возможно, сессия - не лучшее место для хранения и обмена данными при параллельной обработке в джанго? Грешил на sqlite3, очень уж простая база, но с OracleXE то же самое. Если нужно, тестовый проект могу выложить.
Офлайн
Разве SessionStore не фиолетово что сохранять? Главное – чтобы ключи были уникальными.
Офлайн
Вот я тоже так думал. Ключи генерил случайные:
''.join(random.sample(string.ascii_letters, 16))
Ан нет…
Офлайн