В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Контекстный менеджер не может подменить результат выражения 1 / 0. Он может подавить исключение, сохранить default в своём поле и отдельно напечатать его, как в примере.
Оберните создание книги и обложек в transaction.atomic, не изменяйте входной data и возвращайте созданную книгу. bulk_create допустим при отсутствии нужных save-сигналов.
Нужно исправить импорты и валидацию, защитить запуск рассылки и вынести отправку из HTTP-запроса. Текущий код неверно фиксирует общий статус и допускает повторную отправку.
Есть опечатка BooleanField, запись в БД внутри getter, лишние count-запросы и риск переполнения payment_agent. Определение провайдера лучше выполнять при подтверждении платежа.
Нужны два независимых ограничения: семафор на 10 активных запросов и ограничитель стартов до 10 за скользящую секунду. Один semaphore не задаёт requests per second.