在我的Django项目中,我有多个应用,并希望向所有应用添加一般(Command
)自定义populate_db
。但是,Django似乎只在INSTALLED_APPS
位置注册自定义命令(即您必须将management
文件夹放在应用程序的文件夹中)。
是否可以在management
中放置project_folder
文件夹。这是所需的目录结构:
.
├── __init__.py
├── app_1
| ├── admin.py
| └── ...
├── app_2
| ├── admin.py
| └── ...
├── project_folder
| ├── settings.py
| └── management
| ├── __init__.py
| └── commands
| ├── __init__.py
| └── populate_db.py
└── manage.py
答案 0 :(得分:2)
Django仅在management/commands
中为您安装的应用查找管理命令。没有其他方式来注册它们。
在您的情况下,您可以将project_folder
添加到INSTALLED_APPS
,Django应该找到您的管理命令。
另一种常见方法是创建一个名为'core'
或'main'
的应用,其中包含适用于整个项目的实用程序,例如populate_db
管理命令。