Ja in mögen, die Reihenfolge ganz wichtig ist.
Von Django offizieller Dokumentation auf INSTALLED_APPS
settings:
Wenn mehrere Anwendungen verschiedene Versionen derselben Ressource (Vorlage, statische Datei, Verwaltungsbefehl, Übersetzung) liefern, die ersten in INSTALLED_APPS
aufgeführten Anwendung Vorrang hat .
Beispiel-1-Vorlagen:
django.template.loaders.app_directories.Loader
Wenn diese Vorlage loader in Ihrem DjangoTemplates
Backend in der TEMPLATES
Einstellung aktiviert oder wenn Sie es als ein Lader Argument Motor bestanden haben Dann lädt es Vorlagen aus Django-Apps auf das Dateisystem.
Für jede App in INSTALLED_APPS
sucht der Loader nach einem Vorlagen-Unterverzeichnis. Wenn das Verzeichnis existiert, sucht Django dort nach Vorlagen.
Lets in meinem Projekt sagen, habe ich definiert INSTALLED_APPS
als:
INSTALLED_APPS = ('myproject.app1', 'myproject.app2')
Nun, ich möchte some_template.html
die Vorlage erhalten. Dann wird get_template('some_template.html')
sucht some_template.html
in diesen Verzeichnissen, in dieser Reihenfolge:
/path/to/myproject/app1/templates/ # checks here first
/path/to/myproject/app2/templates/ # Then checks here
Es wird dann die man verwenden, die es zuerst findet.
Zitiert aus diesem section:
Die Reihenfolge der INSTALLED_APPS
von Bedeutung ist!
Beispiel 2: Übersetzungen
Django gilt den folgenden Algorithmus für die Entdeckung Übersetzungen:
- Die aufgelisteten Verzeichnisse in
LOCALE_PATHS
die höchste Priorität haben, mit denen, erscheinen zuerst höhere Priorität haben als die später erscheinenden.
- Dann sucht und verwendet es, wenn es ein Verzeichnis
locale
in jeder der installierten Anwendungen in INSTALLED_APPS
aufgeführt ist. Die zuerst erscheinenden haben eine höhere Priorität als die später erscheinenden.
- Schließlich wird die von Django bereitgestellte Basisübersetzung in
django/conf/locale
als Fallback verwendet.
Wir können sehen, dass Reihenfolge hier auch wichtig ist.
Beispiel-3-Management-Befehle:
Von Django 1.7 Release Notes auf management commands and order of INSTALLED_APPS
:
Wenn mehrere Anwendungen Managements bieten mit den gleichen Namen Befehle, lädt Django den Befehl von der Anwendung, die kommt zuerst in INSTALLED_APPS
. Frühere Versionen haben den Befehl aus der letzten Anwendung geladen.
Dies bringt Entdeckung von Management-Befehlen in Übereinstimmung mit anderen Teilen von Django, die in der Größenordnung von INSTALLED_APPS
verlassen, wie statischen Dateien, Vorlagen und Übersetzungen.
große Antwort ... – Abhishek