Django:自定义管理命令未使用app-config注册



我正试图为我的一个Django应用程序构建一些自定义命令。我遵循文档,将命令的代码放入一个文件中,文件夹结构如下:

|--myproject   
|--myapp
|--management
|--commands
|--__init__.py
|--index.py
|--__init__.py
|--__init__.py
|--apps.py
|--...
|--otherapp
|--management
|--commands
|--__init__.py
|--delete.py
|--__init__.py
|--__init__.py
|--..
|--...
|--manage.py   

我需要一个apps.py文件,因为我在这个应用程序中使用信号。因此,myapp文件夹中的init.py文件是:

default_app_config = 'myproject.myapp.apps.MyAppConfig'

apps.py文件为:

from django.apps import AppConfig
class MyAppConfig(AppConfig):
name = 'myapp'
def ready(self):
import myproject.myapp.signals

然后,一旦我运行了服务器,我就会尝试调用我的自定义命令,但它没有注册。我试着打电话给

python manage.py

并且该命令不存在。

之后,我试着做同样的事情,但我只是通过将init.py文件设为空来更改它。因此,我的应用程序使用默认的AppConfig。它起作用了,我的命令可以在manage.py上使用。但我不能再使用信号了。

所以,我的问题是,如果我不是使用默认的应用程序配置,而是使用自定义配置,如何在应用程序中注册自定义命令?

感谢

AppConfig.name属性需要包含应用程序的完整路径。

您的default_app_configmyproject.myapp.开头,所以AppConfig.name应该是myproject.myapp

最新更新