Как используется Django в проекте
Что проверяют
За общей формулировкой стоит вопрос о вашем реальном опыте: какую часть Django вы использовали и понимаете ли, что происходит под капотом ORM и цикла запроса. Следом почти всегда спрашивают про N+1 и про то, как в проекте жили фоновые задачи.
Как отвечать
Отвечайте про свой проект, по слоям, и называйте конкретику:
- роль Django: классический сайт на шаблонах или API на Django REST Framework для SPA и мобильного клиента. Во втором случае шаблоны почти не нужны, зато важны сериализаторы,
ViewSet, роутеры и классы разрешений; - модели и миграции:
makemigrationsиmigrate, как вы проводили миграцию на большой таблице и как разруливали конфликты миграций в команде; - запросы:
select_relatedдля внешних ключей через JOIN,prefetch_relatedдля обратных связей и many-to-many отдельным запросом,only,annotate, индексы вMeta.indexes; - встроенное: админка для внутренних пользователей,
django.contrib.authи своя модель пользователя черезAUTH_USER_MODEL, middleware; - окружение: фоновые задачи на Celery или похожей очереди, кеш на Redis, запуск через Gunicorn для WSGI или Uvicorn для ASGI, настройки через переменные окружения.
Добавьте цифры своего проекта: объём данных, нагрузку, число приложений. Если опыт учебный, так и скажите и перечислите, что делали руками: модели, API, тесты на pytest-django. Честное «на пет-проекте я сделал вот это» звучит лучше пересказа документации.
Безопасность упоминайте по делу: CSRF-токен в формах, автоэкранирование в шаблонах, параметризованные запросы в ORM. Строки, склеенные вручную в raw() или extra(), эту защиту снимают.
Где спотыкаются
Пересказывают MVT как определение из учебника и ни слова не говорят о своём проекте. Интервьюеру нужен опыт, а не схема.
Не могут объяснить N+1: цикл по queryset с обращением к связанной модели порождает запрос на каждую строку, а лечится это select_related или prefetch_related.
Кладут всю логику во views или в сигналы. Сигналы неявны и плохо отлаживаются, бизнес-логику лучше держать в сервисном слое или методах моделей.