自定义Django命令的自定义位置

时间:2017-11-01 11:41:37

标签: python django

在我的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

1 个答案:

答案 0 :(得分:2)

Django仅在management/commands中为您安装的应用查找管理命令。没有其他方式来注册它们。

在您的情况下,您可以将project_folder添加到INSTALLED_APPS,Django应该找到您的管理命令。

另一种常见方法是创建一个名为'core''main'的应用,其中包含适用于整个项目的实用程序,例如populate_db管理命令。