Sto sviluppando un'applicazione Django, che è un sistema di grandi dimensioni che richiede più sotto-applicazioni per mantenere le cose in ordine. Pertanto, ho una directory di livello superiore che è un'app Django (in quanto ha un file vuoto models.py
) e più sottodirectory, che sono anche applicazioni in sé stesse.Sotto-applicazioni Django e struttura del modulo
Il motivo per cui ho implementato la mia applicazione in questo modo è perché le sotto-applicazioni sono separate, ma non verrebbero mai utilizzate da sole, al di fuori dell'applicazione madre. Pertanto non ha senso distribuirli separatamente.
Quando si installa la mia domanda, il file delle impostazioni deve includere qualcosa di simile:
INSTALLED_APPS = (
...
'myapp',
'myapp.subapp1',
'myapp.subapp2',
...
)
... che è ovviamente non ottimale. Questo ha anche il risultato un po 'sgradevole di richiedere che tutte le sotto-applicazioni siano indicate con il loro nome "interno" (ad esempio subapp1
, subapp2
ecc.). Ad esempio, se voglio ripristinare le tabelle del database per subapp1, devo digitare:
python manage.py reset subapp1
Questo è fastidioso, soprattutto perché ho un sub-app chiamato core
- che rischia di conflitto con il nome di un'altra applicazione quando la mia applicazione è installata nel progetto di un utente.
Sto facendo questo in modo completamente errato, o è lì per forzare queste app "interne" a cui fare riferimento con il loro nome completo?
Perché questo è il sub-ottimale per te? Potresti chiarire cosa vorresti ottenere? –
Semplicemente perché, per installare la mia "applicazione", è necessaria ogni app all'interno del modulo genitore, quindi è davvero una duplicazione di dati. Inoltre, se aggiungiamo eventuali sotto-applicazioni, devono essere aggiunte all'elenco delle app installate su ogni installazione. –