Django 自定义应用程序配置

Dej*_*ell 2 python django

我想运行只在 django 应用程序中执行一次的代码。

我的结构:

company
  project
    common
      project_config.py
  __init__.py
Run Code Online (Sandbox Code Playgroud)

__init__.py

default_app_config = "company.project.common.ProjectConfig"
Run Code Online (Sandbox Code Playgroud)

设置.py

..
INSTALLED_APPS = (
  "company.project"
)
..
Run Code Online (Sandbox Code Playgroud)

项目配置文件

from django.apps import AppConfig

class ProjectConfig(AppConfig):
    name = "company.project"

    def ready(self):
        do_something()
Run Code Online (Sandbox Code Playgroud)

我没有看到我的配置中的 ready() 方法正在被调用。

怎么了?

afi*_*rdo 6

根据文档,您不需要_init_.py文件,只需将 INSTALLED_APPS 指向AppConfig子类:

尝试这个:

INSTALLED_APPS = (
  'company.project.common.ProjectConfig',
)
Run Code Online (Sandbox Code Playgroud)