Estoy desarrollando una aplicación Django, que es un sistema grande que requiere múltiples sub-aplicaciones para mantener las cosas ordenadas. Por lo tanto, tengo un directorio de nivel superior que es una aplicación Django (ya que tiene un archivo models.py
vacío) y múltiples subdirectorios, que también son aplicaciones en sí mismos.Sub-aplicaciones Django y estructura de módulo
La razón por la que he presentado mi aplicación de esta manera es porque las sub-aplicaciones están separadas, pero nunca se usarán por sí mismas, fuera de la aplicación principal. Por lo tanto, no tiene sentido distribuirlos por separado.
Al instalar mi aplicación, el archivo de configuración tiene que incluir algo como esto:
INSTALLED_APPS = (
...
'myapp',
'myapp.subapp1',
'myapp.subapp2',
...
)
... que obviamente es subóptima. Esto también tiene el resultado ligeramente desagradable de requerir que todas las sub-aplicaciones se mencionen por su nombre "interno" (es decir, subapp1
, subapp2
etc.). Por ejemplo, si quiero restablecer las tablas de la base de subapp1, tengo que escribir:
python manage.py reset subapp1
Esto es molesto, sobre todo porque tengo una sub-aplicación llamada core
- que es probable que el conflicto con el nombre de otra aplicación cuando mi aplicación está instalada en un proyecto de usuario.
¿Estoy haciendo esto completamente erróneamente, o está ahí para forzar que estas aplicaciones "internas" se mencionen por su nombre completo?
¿Por qué no es óptimo para usted? ¿Podría aclarar lo que le gustaría lograr? –
Simplemente porque, para instalar mi "aplicación", se requiere cada aplicación dentro del módulo principal, por lo que realmente es una duplicación de datos. Además, si alguna vez agregamos alguna sub-aplicación, deben agregarse a la lista de aplicaciones instaladas en cada instalación. –