Django ломают не моделью, а тремя незаметными привычками в проекте
В репах чаще всего всплывает одно и то же: бизнес-логика уезжает в views, запросы к БД размазаны по шаблонам, а формы начинают делать чужую работу. В итоге код вроде бы «по-Django», но поддерживать его больно.
Держите три правила, которые помогают не развалить проект:
— всю логику изменений данных выносить из views в сервисы или model methods;
— тяжёлые запросы собирать заранее через select_related/prefetch_related, а не в цикле;
— шаблон оставлять для отображения, а не для вычислений и фильтрации.
Ещё одна типовая ошибка — смешивать в одном месте валидацию, доступы и запись в базу. Когда код растёт, это превращается в цепочку if-ов, которую страшно трогать. Лучше разделять: форма или serializer проверяет вход, сервис решает бизнес-правило, слой доступа к данным только сохраняет результат.
Если проект уже распух, начните с самого дорогого места: уберите N+1-запросы, вытащите повторяющиеся куски в отдельные функции и оставьте views максимально тонкими. Так Django снова становится быстрым в разработке, а не только в названии.
Python Web & Scripts — Django, FastAPI, скрипты
@python_web_scripts
Django ломают не моделью, а тремя незаметными привычками в проекте
Этот пост опубликован в Telegram-канале Python Web & Scripts — Django, FastAPI, скрипты. Подписаться можно по ссылке: @python_web_scripts.