v1.0.177: History — объединение history+History, 5 подпапок
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# Исправление PRG-паттерна и окна повторной отправки (15.06.2026)
|
||||
|
||||
## Проблема
|
||||
При нажатии F5 (перезагрузка) браузер выдает окно «Подтвердите повторную отправку формы». Это происходит потому, что последним запросом был POST (на загрузку или на обработку), и страница отображается как результат этого POST-запроса.
|
||||
|
||||
## Решение: PRG (Post-Redirect-Get)
|
||||
Все POST-обработчики должны завершаться инструкцией `redirect(...)`.
|
||||
1. Пользователь отправляет POST.
|
||||
2. Сервер обрабатывает данные.
|
||||
3. Сервер возвращает статус 302 (Redirect).
|
||||
4. Браузер делает автоматический GET на новый URL.
|
||||
5. Теперь в истории браузера последний запрос — GET. При нажатии F5 просто обновится страница без всяких окон.
|
||||
|
||||
## Что сделано:
|
||||
- В `app.py` проверено, что `_upload_files` делает `redirect("/?id=" + contract_id)`.
|
||||
- В `app.py` проверено, что `_process` делает `redirect("/?id=" + cid)`.
|
||||
- Добавлена очистка параметров, если они могут вызвать зацикливание.
|
||||
|
||||
## Статус
|
||||
- [x] Реализован Redirect после всех POST-запросов.
|
||||
- [x] Окно подтверждения больше не должно появляться при F5 на странице договора.
|
||||
Reference in New Issue
Block a user