Ответ 1
Да, порядок очень важен.
Из официальных документов Django в INSTALLED_APPS
settings:
Когда несколько приложений предоставляют разные версии одного и того же ресурс (шаблон, статический файл, команда управления, перевод), приложение, указанное первым в
INSTALLED_APPS
имеет приоритет.
Пример-1 Шаблоны:
django.template.loaders.app_directories.Loader
Если этот загрузчик шаблонов включен в вашем сервере DjangoTemplates
в параметре TEMPLATES
или если вы передали его как аргумент загрузчика для Engine, он загружает шаблоны из приложений Django в файловой системе.
Для каждого приложения в INSTALLED_APPS
загрузчик ищет подкаталог шаблонов. Если каталог существует, Django будет искать там шаблоны.
Давайте скажем в моем проекте, я определил INSTALLED_APPS
как:
INSTALLED_APPS = ('myproject.app1', 'myproject.app2')
Теперь я хочу получить шаблон some_template.html
. Тогда get_template('some_template.html')
будет искать some_template.html
в этих каталогах в следующем порядке:
/path/to/myproject/app1/templates/ # checks here first
/path/to/myproject/app2/templates/ # Then checks here
Затем он будет использовать тот, который он находит первым.
Цитата из раздела :
Порядок
INSTALLED_APPS
значителен!
Пример-2: Переводы
Django применяет следующий алгоритм для обнаружения переводов:
- Каталоги, перечисленные в
LOCALE_PATHS
, имеют наивысший приоритет, причем первые появляются с более высоким приоритетом, чем те, которые появляются позже. - Затем он ищет и использует, если он существует в каталоге
locale
в каждом из установленных приложений, перечисленных вINSTALLED_APPS
. Те, что появляются сначала, имеют более высокий приоритет, чем те, которые появляются позже. - Наконец, базовый перевод Django в
django/conf/locale
используется как резерв.
Мы видим, что этот порядок важен и здесь.
Команды управления 3-го уровня:
Из примечаний к выпуску Django 1.7 в командах и порядке управления INSTALLED_APPS
:
Когда несколько приложений предоставляют команды управления с тем же имя, Django загружает команду из приложения, которое приходит первым в
INSTALLED_APPS
. Предыдущие версии загрузили команду из последнее приложение.Это обеспечивает обнаружение команд управления в соответствии с другими частями Django, которые полагаются на порядок
INSTALLED_APPS
, такие как статические файлы, шаблоны и переводы.