d5e40bb1c89b6d41c31775b9ae1c11f9c9a4da62
Проблема: При продаже 2+ экземпляров одного витринного комплекта возникала ошибка 'Один из экземпляров уже был продан'. Это происходило потому что объекты ShowcaseItem проверялись по старому состоянию из памяти. Причина: - При вызове sell_showcase_items() передавался список объектов из запроса - Первый ShowcaseItem менял статус на 'sold' через mark_sold() - Второй объект в списке все еще имел старый статус из памяти - Проверка в цикле срабатывала некорректно Решение: - Перезагружаем ВСЕ ShowcaseItem из БД с блокировкой перед обработкой - Используем select_for_update() для получения актуального статуса - Теперь каждый экземпляр проверяется по свежим данным из БД - Защита от race conditions через database-level locking Результат: Теперь можно продавать 2+ экземпляра одного букета без ошибок.
Description
No description provided
Languages
Python
57%
HTML
32%
JavaScript
9.5%
CSS
1.1%
Shell
0.4%