Sì, l'ordine è molto importante.
Da Django documentazione ufficiale sul INSTALLED_APPS
settings:
Quando più applicazioni forniscono diverse versioni dello stesso risorse (template, file statico, comandi di gestione, la traduzione), l'applicazione elencato per primo nel INSTALLED_APPS
ha la precedenza .
Esempio-1 Modelli:
django.template.loaders.app_directories.Loader
Se questo modello caricatore ATTIVO DjangoTemplates
backend nella cornice TEMPLATES
o se si sono passati come argomento caricatori a motore , quindi carica i modelli dalle app Django sul filesystem.
Per ogni app in INSTALLED_APPS
, il caricatore cerca una sottodirectory di modelli. Se la directory esiste, Django cercherà i modelli lì.
lascia per dire nel mio progetto, ho definito come INSTALLED_APPS
:
INSTALLED_APPS = ('myproject.app1', 'myproject.app2')
Ora, voglio ottenere il modello some_template.html
. Poi get_template('some_template.html')
cercherà some_template.html
in queste directory, in questo ordine:
/path/to/myproject/app1/templates/ # checks here first
/path/to/myproject/app2/templates/ # Then checks here
Sarà quindi utilizzare quella che si trova prima.
Citando da quella section:
L'ordine di INSTALLED_APPS
è significativo!
Esempio-2: Traduzioni
Django si applica il seguente algoritmo per le traduzioni scoperta:
- Le directory elencate nella
LOCALE_PATHS
hanno la precedenza più alta, con quelli che appaiono prima che hanno precedenza maggiore di quelli che appaiono più tardi.
- Quindi, cerca e utilizza se esiste una directory
locale
in ciascuna delle app installate elencate in INSTALLED_APPS
. Quelli che appaiono per primi hanno una precedenza più alta di quelli che appaiono in seguito.
- Infine, la traduzione di base fornita da Django in
django/conf/locale
viene utilizzata come riserva.
Possiamo vedere che l'ordine è importante anche qui.
Esempio-3 Gestione Comandi:
Da Django 1.7 note di rilascio sul management commands and order of INSTALLED_APPS
:
Quando più applicazioni forniscono i comandi di gestione con lo stesso nome, Django carica il comando dall'applicazione che viene prima in INSTALLED_APPS
. Le versioni precedenti hanno caricato il comando dall'applicazione che è arrivata per ultima.
Questo porta scoperta dei comandi di gestione in linea con le altre parti di Django che si basano su ordine di INSTALLED_APPS
, come file statici, modelli e traduzioni.
ottima risposta ... – Abhishek