gpt4 book ai didi

python - INSTALLED_APPS 中应用订单的重要性

转载 作者:IT老高 更新时间:2023-10-28 20:28:14 30 4
gpt4 key购买 nike

INSTALLED_APPS 中应用的顺序重要吗?我问它是因为我有 settings 文件夹,其中包含两个 settings 文件:base.pyproduction.py 我将我所有的设置放在 base.py 中,然后放在 production.py 中,我有:

from base import * 

然后我覆盖了一些设置。同样在我的 base.py 中,我将 INSTALLED_APPS 设为一个列表,而不是一个元组。因为我想为 production 设置删除一些应用程序。在 production.py 我想写:

NOT_USED_APPS = ['debut_toolbar', 'other_odd_app',]
INSTALLED_APPS = list(set(INSTALLED_APPS) - set(NOT_USED_APPS))

在这种情况下,INSTALLED_APPS 中的应用程序顺序与 base.py

中的不同

最佳答案

是的,顺序很重要。

来自 INSTALLED_APPS settings 上的 Django 官方文档:

When several applications provide different versions of the same resource (template, static file, management command, translation), the application listed first in INSTALLED_APPS has precedence.

示例 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

然后它将使用它首先找到的那个。

引自 section :

The order of INSTALLED_APPS is significant!

示例 2:翻译

Django 应用以下算法来发现翻译:

  1. LOCALE_PATHS 中列出的目录具有最高优先级,首先出现的目录优先于后面出现的目录。
  2. 然后,它会查找并使用 INSTALLED_APPS 中列出的每个已安装应用程序中是否存在 locale 目录。 先出现的优先级高于后出现的优先级。
  3. 最后,django/conf/locale 中 Django 提供的基本翻译被用作后备。

我们可以看到这里的顺序也很重要。

示例 3 管理命令:

来自 management commands and order of INSTALLED_APPS 上的 Django 1.7 发行说明:

When several applications provide management commands with the same name, Django loads the command from the application that comes first in INSTALLED_APPS. Previous versions loaded the command from the application that came last.

This brings discovery of management commands in line with other parts of Django that rely on the order of INSTALLED_APPS, such as static files, templates, and translations.

关于python - INSTALLED_APPS 中应用订单的重要性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31925458/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com