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

Django ломают не моделью, а тремя незаметными привычками в проекте

Django ломают не моделью, а тремя незаметными привычками в проекте

В репах чаще всего всплывает одно и то же: бизнес-логика уезжает в views, запросы к БД размазаны по шаблонам, а формы начинают делать чужую работу. В итоге код вроде бы «по-Django», но поддерживать его больно.

Держите три правила, которые помогают не развалить проект:
— всю логику изменений данных выносить из views в сервисы или model methods;
— тяжёлые запросы собирать заранее через select_related/prefetch_related, а не в цикле;
— шаблон оставлять для отображения, а не для вычислений и фильтрации.

Ещё одна типовая ошибка — смешивать в одном месте валидацию, доступы и запись в базу. Когда код растёт, это превращается в цепочку if-ов, которую страшно трогать. Лучше разделять: форма или serializer проверяет вход, сервис решает бизнес-правило, слой доступа к данным только сохраняет результат.

Если проект уже распух, начните с самого дорогого места: уберите N+1-запросы, вытащите повторяющиеся куски в отдельные функции и оставьте views максимально тонкими. Так Django снова становится быстрым в разработке, а не только в названии.
Этот пост опубликован в Telegram-канале Python Web & Scripts — Django, FastAPI, скрипты. Подписаться можно по ссылке: @python_web_scripts.
tech

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

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

start

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

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

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