есть счетчик, который увеличивается по методу PUT на 1, и при этом он не должен превысить 5. Обрабатываю в контроллере через update и F(). Есть сомнения, что при одновременных запросах счетчик может стать больше 5. Как лучше реализовать?
Код: https://dpaste.org/FTGS/slim
прикольный кейс, интересно что посоветуют
а что должно быть в случае если кто-то сетит 5+?
В модели прописать чойсис или валидацию поля?
мне кажется самым простым вариант: добавить constraint в Meta, а в api-вьюхе запрос обернуть в try/except. Есть еще валидаторы в модели, но не знаю как они работают с drf *UPD: и при твоем запросе (с update) валидаторы не сработают
Попробуй через резервирование сначала обработать, чтобы бд проверить и не будет одновременных траблов
Про транзакции мы не слышали?
select_for_update + waiting False
Обсуждают сегодня