306 вопросов по Django с технических собеседований
306 вопросов1634 компании353 технологии
Что проверяют на интервью
Как устроена подборка
На странице собраны вопросы по Django — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: django, backend, api.
bulk_create вставляет объекты пакетами без вызова обычного save() и модельных сигналов. Заполнение автоматически созданных primary key в объектах зависит от СУБД и режима обработки конфликтов.
Наиболее прямой следующий шаг — проверить фильтры, сортировку, селективность и подобрать индекс по плану. Сам по себе Seq Scan не доказывает, что нужен любой индекс.
Наиболее зрелый первый шаг — снять трассировку, найти запросы и затем настроить выборочную загрузку связей. Число 35 само по себе ещё не объясняет причину задержки.
Django Admin обычно валидирует объект через ModelForm, а та вызывает модельную валидацию, включая Model.clean(). Ошибки ValidationError отображаются в форме до сохранения.
Для связанных изменений в одной базе Django обычно используют transaction.atomic(). Если исключение выходит из блока, изменения этой транзакции откатываются.
Постановку Celery-задачи нужно отложить через transaction.on_commit: воркер получит задание только после успешного commit, а не раньше появления данных в БД.
Model.clean() предназначен для пользовательской валидации модели, особенно правил между несколькими полями. Он может выбрасывать ValidationError и вызывается как этап full_clean().
Фильтруйте исходный QuerySet по request.user или разрешённому tenant до поиска объекта по ID. Идентификатор владельца из входного запроса не должен определять доступ.
Фильтруйте объект одновременно по его ID и владельцу из проверенной сессии пользователя. Это не позволяет получить чужой объект только подменой параметра URL.
Поставьте отправку Celery-задачи в transaction.on_commit, чтобы она запускалась только после успешного commit. При rollback callback не выполняется, и worker не увидит незаписанные данные.
Django ORM тесно интегрирована с моделями, миграциями и остальным Django. SQLAlchemy — самостоятельный SQL toolkit и ORM с явной Session и моделью Unit of Work.