
Настроить админку Django под свои модели без боли
Практическое руководство по настройке Django admin: list_display, поиск, фильтры, inline-модели и оптимизация запросов. Для тех, кто уже поднял проект и хочет удобную панель без сторонних пакетов.

Практическое руководство по настройке Django admin: list_display, поиск, фильтры, inline-модели и оптимизация запросов. Для тех, кто уже поднял проект и хочет удобную панель без сторонних пакетов.

За 30–40 минут вы переключите проект Django с SQLite на PostgreSQL: установите драйвер, поднимете базу, перенесёте данные и проверите, что приложение работает на новом движке.

За 20 минут вы опишете модель в Django 5.x, создадите таблицу в базе через миграции и проверите результат в админке. Нужен только установленный Python и созданный проект.

Как создать приложение внутри проекта Django 5.x командой startapp, подключить его к проекту и убедиться, что оно работает. Пошаговый разбор с проверкой на каждом шаге.

Наивный цикл, который считает 40 секунд, легко превращается в 0,8. Разбираем, чем платят за ускорение векторизация, кеш, JIT и параллелизм — и когда каждый из них уместен.

Пошаговая установка Django в виртуальном окружении: от проверки версии Python до работающей стартовой страницы на локальном сервере. Всё копируется и запускается.

Retry без джиттера превращает один таймаут БД в лавину запросов. Разбираем, как повторы, таймауты и circuit breaker ведут себя под нагрузкой и где именно рвётся.

Кеш ускоряет чтение, но инвалидация растекается по всему коду и превращает простой lru_cache в источник рассинхрона. Разбираем, где ломается инвалидация под нагрузкой и что она делает с архитектурой сервиса.

Redis SETNX без TTL повесил очередь задач на сутки, а lock через истёкший ключ дал двум воркерам обработать один платёж. Разбираем, где ломаются распределённые блокировки в Python и как их чинить.

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

Профайлер показал, что 80% времени уходит в один цикл. Разбираем, когда его спасёт Cython, а когда сначала нужно переписать сам алгоритм и структуры данных.

Воркер на SIGTERM обрывал задачи посреди выполнения, а данные оставались в неконсистентном состоянии. Разбираем, почему стандартный signal.signal не спас и как устроена остановка процесса под управлением orchestrator.