要解释已安装应用程序的详细信息,请执行以下操作:
-
-
您可以导入的任何内容都不会(间接)导入以下任何内容,您可以在未安装的应用程序中导入和使用
-
模板、静态文件、模板标记库(“自定义标记”)、模型和任何可能需要的初始化代码(如信号注册)都需要在已安装的应用程序中才能找到。这一切都是由
apps
框架。
灰色区域:你可以在其他地方注册模板标签库,但在安装的应用程序中安装应用程序将确保它自动加载。
初始化代码应该在
ready()
.
原因:
模型和模板库可以通过字符串引用:
class Pizza(models.Model):
# Reference to app bakery, with model that lowercases to topping
topping = models.ForeignKey('bakery.topping')
{# Reference to a template library in some app,
for which the name is globally unique within the project #}
{% load mytags %}
模板和静态文件,需要使用一组基本目录进行解析。两者都可以配置为一个单独的列表,但是apps框架还会在每个注册的应用程序中查找子目录“static”和“templates”,并将它们添加到解析器中。