class **AppConfig**
应用配置对象:存储应用程序的元数据 某些属性可以在 AppConfig 子类中配置。其他由 Django 设置并且是只读的。
可配置属性
----------
#### AppConfig.name
应用程序的完整 Python 路径,例如 '`django.contrib.admin`'。
此属性定义配置适用的应用程序。**必须在所有 AppConfig 子类中设置它**。
它在Django项目中必须是唯一的。
#### AppConfig.label
应用程序的简称,例如 'admin'
当两个应用程序具有冲突标签时,此属性允许重新标记应用程序。它默认为最后一个组件name。它应该是一个有效的Python标识符。
它在Django项目中必须是唯一的。
#### AppConfig.verbose_name
应用程序的人类可读名称,例如“管理”。
此属性默认为label.title()。
#### AppConfig.path
应用程序目录的文件系统路径,例如 '`/usr/lib/python3.4/dist-packages/django/contrib/admin`'。
在大多数情况下,Django可以自动检测并设置它,但您也可以在AppConfig子类上提供显式覆盖作为类属性 。
在少数情况下,这是必需的; 例如,如果app包是具有多个路径的命名空间包。
只读属性
-----------
#### AppConfig.module
应用程序的根模块,例如:
`<module 'django.contrib.admin' from 'django/contrib/admin/__init__.py'>`
#### AppConfig.models_module
包含模型的模块,例如:
`<module 'django.contrib.admin.models' from 'django/contrib/admin/models.py'>`
当应用程序不包含models模块时,此属性为 `None` 。
请注意,数据库相关信号(例如 pre_migrate和 post_migrate 仅针对具有 models 模块的应用程序)发出。
方法
-----
#### AppConfig.get_models()
返回应用模型中定义的所有 model 类(一个可迭代对象)。
#### AppConfig.get_model(model_name, require_ready=True)
返回指定 model 类。
参数 `model_name` 不区分大小写。
需要应用注册表被填充,除非指定参数 `require_ready=False`。
#### AppConfig.ready()
AppConfig 子类可以重写此方法以执行初始化任务。如:注册信号。
注册表完全填充后立即调用它。
在 AppConfig 子类中,我们无法使用模型(此时注册表还未被填充)。但可以在 `ready()` 方法中通过 import 语句或 get_model() 调用模型。
~~~
from django.db.models.signals import pre_save
def ready(self):
from .models import MyModel # import 导入模型
MyModel = self.get_model('MyModel') # get_model 导入模型
# 通过链式路径定义 信号寄件人
pre_save.connect(receiver, sender='app_label.MyModel')
~~~
外传:[信号 | Django documentation | Django](https://docs.djangoproject.com/zh-hans/2.0/topics/signals/)
**Warning**:
应当避免在 `ready()` 方法中使用模型进行数据增删改查。
`ready()` 方法会在每个启动期间执行,即使是在 test 测试中,如:
~~~
$ python manage.py test
~~~
**Notes**:
应当避免在 `ready()` 方法中使用模型进行数据增删改查。
`ready()` 方法会在每个启动期间执行,即使是在 test 测试中,如:
~~~
$ python manage.py test
~~~
通常,`ready()` 方法仅会被 Django 调用一次,但在某些情况下(如 test 调试应用时)会被重复调用。建议在代码中打上标签,根据标签状态防止重复调用。
- 开始
- 安装 django
- 配置语言、时区
- 创建项目
- 执行项目
- Applications
- 应用
- 配置应用
- INSTALLED_APPS
- django apps 包
- AppConfig 子类
- 应用的复用
- 路由
- URLconf
- path
- 转换器
- re_path
- 捕获参数
- URL 反向解析
- include
- 额外参数
- URL 命名空间
- Settings
- Core Settings
- INSTALLED_APPS
- django API
- apps
- config.py -- AppConfig 类
- registry.py -- Apps 类
- db
- models.fields 包
- 字段类型
- 字段选项
- null、blank
- 模型
- 简介
- 字段
