Многие люди, особенно выходцы из мира Rails, зацикливаются на термине «приложение» и начинают бросать абсолютно все в одно приложение. В Django приложение - это одноразовый модуль, который делает одно и делает это хорошо. Каждое приложение должно быть описано в одном или двух коротких предложениях. «Проект» - это набор приложений, объединенных файлом настроек. Даже для чего-то такого сложного, как интернет-магазин, то, что я обнаружил сейчас, имея более четырех или пяти моделей в одном приложении, является предупреждающим знаком: было бы лучше, чтобы приложение store
(в котором была корзина) было зависит от приложения product
, чем оба в одном приложении. То же самое относится к invoices
и payments
, и так далее.
Взгляните на Django в реальном мире , презентацию Джейкоба Каплана-Мосса о том, как писать приложения на Django.
Приложение Django - это инкапсуляция: оно описывает один простой объект (или набор объектов) и его API. Наличие 20 моделей звучит так, как будто у вас нет чистого API и, следовательно, четкого представления о том, что делает это приложение.
Вам нужен ответ: «Это зависит от того, что делает ваше приложение». С этой целью, что, черт возьми, приложение с 20 моделями делает , в любом случае? Возьмите свою копию Рефакторинг и получайте удовольствие.