5 ошибок в Django, которые тихо съедают время команды и замедляют релизы
В Django чаще всего ломают не «большую архитектуру», а мелочи, которые годами копятся в репе. За неделю в репах: один и тот же паттерн всплывает в проектах разного размера — от агентских кабинетов до внутренних CRM.
— Логика в views. Когда обработка запроса, валидация и бизнес-правила сидят в одном месте, код быстро становится не тестируемым. Выносите правила в services или domain-слой, а view оставляйте тонким.
— Слишком жирные модели. Model-методы удобны, пока не начинают тянуть внешние вызовы, расчёты и side effects. Если метод нельзя вызвать без базы и сети, это уже не model.
— Игнорирование select_related/prefetch_related. На списках и карточках это даёт классический N+1 и медленный интерфейс. Сначала смотрите в шаблон и сериализатор, потом в индексы.
Ещё одна частая проблема — смешивать админку, API и фоновые задачи в одной логике. Когда один и тот же кусок кода используется везде, его надо проектировать как переиспользуемый сервис, а не копировать «как получилось». И отдельно проверяйте permissions: в Django баги доступа часто живут не в auth, а в custom queryset.
Если нужно начать с малого, проверьте три места: views, ORM-запросы и слой прав. Обычно этого хватает, чтобы убрать половину технического долга без большого рефакторинга.
Python Web & Scripts — Django, FastAPI, скрипты
@python_web_scripts
5 ошибок в Django, которые тихо съедают время команды и замедляют релизы
Этот пост опубликован в Telegram-канале Python Web & Scripts — Django, FastAPI, скрипты. Подписаться можно по ссылке: @python_web_scripts.