在我的 Django 项目中,我有多个应用程序,并且想添加对所有应用程序Command通用的自定义 ( populate_db)。但是,Django 似乎仅从位置注册自定义命令INSTALLED_APPS(即您必须将management文件夹放置在应用程序的文件夹中)。
有没有办法将management文件夹放入project_folder. 这是所需的目录结构:
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 app_1\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 admin.py\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 app_2\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 admin.py\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ...\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 project_folder\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 settings.py\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 management\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 commands\n| \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n| \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 populate_db.py \n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 manage.py\nRun Code Online (Sandbox Code Playgroud)\n
Ala*_*air 11
Django 仅查找management/commands已安装应用程序的管理命令。没有其他方法可以注册它们。
在你的情况下,你可以添加project_folder到你的INSTALLED_APPS,Django 应该找到你的管理命令。
另一种常见的方法是创建一个名为'core'或 的应用程序'main',其中包含适用于整个项目的实用程序,例如populate_db管理命令。