典型的应用程序如下所示:
myapp/
├── forms.py
├── __init__.py
├── management
│ ├── commands
│ │ ├── __init__.py
│ │ └── my_command.py
│ └── __init__.py
├── models.py
├── tests.py
├── urls.py
└── views.py
.management.commands
是Django强制执行的管理命令标准,但为什么它如此之深。还有其他类型的.management
模块吗?
答案 0 :(得分:0)
这就是Django如何检测自定义管理命令。查看source code for get_commands() here.
返回将命令名称映射到其回调应用程序的字典。 这是通过在django.core中查找management.commands包来实现的 在每个已安装的应用程序中 - 如果存在命令包,则为所有命令 在该包中注册。 始终包含核心命令。如果有设置模块 指定的,用户定义的命令也将被包含在内。