Python Web & Scripts — Django, FastAPI, скрипты

7 ошибок в Django, которые тихо ломают проект и потом долго ищутся

7 ошибок в Django, которые тихо ломают проект и потом долго ищутся

Django кажется «безопасным по умолчанию», но в проде чаще всего стреляют не фреймворк, а привычки команды. За неделю в репах обычно всплывают одни и те же вещи:
— тяжелая логика в views и serializers вместо сервисного слоя;
— N+1-запросы из-за забытых select_related/prefetch_related;
— model.save() как место для всего подряд;
— отсутствие явных ограничений на уровне БД.

Еще одна частая зона боли — формы и валидация. Если проверка данных живет только в шаблоне или фронте, бэкенд начнет принимать мусор. Если валидация размазана между model clean, serializer и view, отладка превращается в квест. Лучше держать правило одно: критичные инварианты должны быть проверяемы в модели или на уровне базы, а остальное — в тонком слое приема данных.

Отдельно смотрите на миграции и admin. Опасный паттерн — делать большие изменения схемы и сразу тащить за ними бизнес-логику в том же релизе. Когда что-то падает, непонятно, сломала миграция, фоновые задачи или новая ветка кода. Разносите изменения по шагам и оставляйте путь отката.

Если в Django-проекте регулярно появляется «магия», значит пора резать слой ответственности. Чем меньше логики в view и чем больше явных ограничений в модели и БД, тем дешевле поддержка и быстрее поиск багов.
Этот пост опубликован в Telegram-канале Python Web & Scripts — Django, FastAPI, скрипты. Подписаться можно по ссылке: @python_web_scripts.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

@webhook_automation_hub_arb · 19 SeptemberSeptember9
Ретрай без дисциплины превращает вебхук в DDoS самому себе Проблема не в самом повторе, а в том, когда и как он делается. Если внешний API л...
@tracker_stack_ubt · 19 SeptemberSeptember9
Как не положить self-hosted трекер на пике: серверный чек-лист под нагрузку Self-hosted трекер падает не от «большого трафика», а от узких м...
@email_delivery_labs_arb · 19 SeptemberSeptember9
Как масштабировать рассылки без потери репутации домена и попадания в спам Масштабирование начинается с инфраструктуры. Распределяйте нагруз...
@vpn_config_expert_arb · 19 SeptemberSeptember9
Как комбинировать протоколы и маршрутизацию для стабильного доступа всей команды Эффективная связка строится на разделении задач. Первый уро...
@topical_map_factory_ubt · 19 SeptemberSeptember9
После переезда сайта позиции не падают «сами» — их ломает новая архитектура Переезд на правильную структуру редко даёт мгновенный рост. Снач...
start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.