Система уведомлений в Django
Наследники не реализуют общий send(message), а базовый метод молча ничего не делает. Нужен единый интерфейс отправителя, реальные реализации send и передача экземпляра, а не класса.
Читать ответПодготовка к интервью
306 вопросов по Django с технических собеседований
Что проверяют на интервью
На странице собраны вопросы по Django — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: django, backend, api.
Каталог
Наследники не реализуют общий send(message), а базовый метод молча ничего не делает. Нужен единый интерфейс отправителя, реальные реализации send и передача экземпляра, а не класса.
Читать ответПри стандартной JSON-сериализации Celery экземпляр Django User передать нельзя. Передавайте первичный ключ и загружайте актуальную модель внутри задачи; создание новой записи согласуйте с commit.
Читать ответДа, Django поддерживает async views и работу через ASGI, но это не делает весь проект автоматически неблокирующим. Middleware, библиотеки и операции с БД нужно проверять на совместимость с async.
Читать ответORM работает с моделями, связями и состоянием объектов, формируя SQL за вас. Чистый SQL задаёт запрос непосредственно; SQLAlchemy также имеет Core, не сводящийся к ORM.
Читать ответНазовите реальные async-функции и зачем они были нужны: параллельное ожидание HTTP, БД или других I/O. async def само по себе не ускоряет функцию и не запускает её автоматически.
Читать ответСначала определяют, какие связи реально будут прочитаны: одиночные загружают select_related, коллекции — prefetch_related. Затем измеряют число запросов и объём данных на полном сценарии рендера.
Читать ответВ Django select_related получает одиночные связи через SQL JOIN, а prefetch_related загружает связанные объекты отдельными запросами и связывает их в Python. Оба помогают устранить N+1.
Читать ответДобавьте метод ModelAdmin в list_display и возвращайте безопасно сформированную ссылку через format_html(). URL формы строят reverse() по имени admin-маршрута, а не конкатенацией строки.
Читать ответНужно различать await внутри async-view и надёжную фоновую задачу. Если работа должна пережить HTTP-запрос или рестарт, её передают worker через очередь, а не оставляют asyncio.create_task() в view.
Читать ответF() выполняет изменение относительно текущего значения прямо в SQL: update(counter=F('counter') + 1). Это устраняет потерю инкрементов из-за схемы «прочитать в Python, увеличить, записать».
Читать ответСравнивайте инструменты по задаче: Django даёт интегрированный набор web-возможностей, FastAPI сфокусирован на API, типах и OpenAPI. Личное предпочтение подкрепите реальным опытом.
Читать ответОсновные риски — XSS в HTML, неверные URL, утечка доступа и N+1 запросы на связанных объектах. Ссылку нужно строить безопасно и отдельно проверять права на целевую страницу.
Читать ответ