У меня есть функция, в которой я сохраняю большое количество моделей (тысяч за раз), это занимает несколько минут, поэтому я написал индикатор выполнения, чтобы отобразить прогресс для пользователя. Индикатор выполнения работает путем опроса URL-адреса (из Javascript) и поиска значения request.session, чтобы увидеть состояние первого вызова (который сохраняет).
Проблема в том, что первый вызов находится в декораторе @action.commit_on_success, и потому что я использую сеансы с поддержкой базы данных, когда пытаюсь принудительно вызвать request.session.save () вместо его немедленной фиксации, он добавляется к текущей транзакции , Это приводит к тому, что индикатор выполнения обновляется только после завершения всех сохранений, что делает его бесполезным.
Мой вопрос (и я на 99,99% уверен, что я уже знаю ответ), можете ли вы зафиксировать операторы внутри транзакции, не выполняя всю работу. то есть мне нужно просто зафиксировать request.session.save (), оставив все остальные ..
Большое спасибо, Алекс