Muchas personas, especialmente las que provienen del mundo de los rieles, se cuelgan del término "aplicación" y comienzan a incluir absolutamente todo en una sola aplicación. En Django, una aplicación es un módulo de uso único que hace una cosa y lo hace bien. Cada aplicación debe describirse en una o dos oraciones cortas. Un "proyecto" es una colección de aplicaciones unificadas por un archivo de configuraciones. Incluso para algo tan complicado como una tienda en línea, algo que estoy descubriendo ahora, tener más de cuatro o cinco modelos en una sola aplicación es una señal de advertencia: era mejor que la aplicación store
(que tiene el carrito de compras) dependa de en la aplicación product
que ambos en la misma aplicación. Lo mismo ocurrió con invoices
y payments
, y así sucesivamente.
Eche un vistazo a Django in the Real World, la presentación de Jacob Kaplan-Moss sobre cómo escribir aplicaciones de Django.
Una aplicación Django es encapsulación: describe un objeto simple (o colección de objetos) y su API. Tener 20 modelos parece que no tienes una API limpia y, por lo tanto, un concepto claro de lo que hace esta aplicación.
La respuesta que desea es "depende de lo que haga su aplicación". Con ese fin, ¿qué demonios hace una aplicación con 20 modelos do, de todos modos? Tome su copia de Refactoring y diviértase.
¿Por qué tendría siquiera 20 modelos en una aplicación en primer lugar? –
De hecho. Gracias. Serían múltiples aplicaciones dentro del proyecto/sitio. Supongo que eso es lo que quise decir cuando pregunté sobre la estructura del directorio. – Withnail
Consulte mi respuesta a continuación, pero si pregunta por la estructura del directorio, asígneles el nombre * de lo que hacen. * ¿Qué representan? ¿Qué API exponen a otras aplicaciones? –