
Вложенные сериализаторы в DRF: правильно с первого раза
Вложенный сериализатор в Django REST Framework отдаёт данные без проблем, а на запись падает с ошибкой или молча игнорирует данные. Разбираем, где именно ломается и как это чинить.

Вложенный сериализатор в Django REST Framework отдаёт данные без проблем, а на запись падает с ошибкой или молча игнорирует данные. Разбираем, где именно ломается и как это чинить.

FileField кажется простым, пока файлы лежат рядом с кодом на одном сервере. Разбираем, как устроено хранение файлов в Django 5.x, где оно ломается и как перенести загрузки в S3 без переписывания моделей.

FileField отдаёт 404 после деплоя, картинки лежат вперемешку в одной папке, а сервер хранит осиротевшие файлы навсегда. Разбираем частые ошибки работы с файлами в Django и рабочие способы их обойти.

FileField и ImageField работают локально, но на проде отдают чужие файлы, теряют загрузки при рестарте и валятся под нагрузкой. Разбираем, что проверить до релиза.

Где на самом деле срабатывают clean_field, clean и валидаторы модели, почему form.is_valid() пропускает мусор в базу и как не размазать одну проверку по трём местам.

Django хранит время в UTC, а показывает в локальном поясе — но между этими двумя точками ломаются отчёты, крон-задачи и сравнения дат. Разбираем семь способов работать с временем и когда какой уместен.

Один settings.py на dev и prod рано или поздно роняет продакшн или утекает SECRET_KEY в репозиторий. Разбираем четыре подхода к разделению настроек и цену каждого.

Когда в проекте 40 моделей в одном приложении и циклический импорт при каждой попытке разбить его, помогает не «правильная» файловая структура, а границы между приложениями. Разбираем, где их проводить и чем платить.

Прямая загрузка файлов через Django-бэкенд упирается в память и таймауты на объёмах от сотен мегабайт. Разбираем три подхода к S3-совместимому хранилищу и цену каждого.

Как развести чтение и запись по разным базам, направить часть моделей в отдельную БД и не словить ошибку при джойне между базами. Разбор роутеров, миграций и граничных случаев на Django 5.x.

Собственный middleware в Django выглядит простым классом с __call__, но именно там ломают производительность и порядок обработки запроса. Разбираем, где он уместен, а где вы стреляете себе в ногу.

Стандартная админка Django закрывает CRUD, но ломается на связанных объектах, массовых операциях и валидации. Разбираем три инструмента, которые превращают её в рабочий бэкофис.