假设我的django项目中有两个或多个应用程序,当我只有一个应用程序A
时,我能够成功地编写和执行自定义manage.py命令。
现在我有了一个新的应用程序B
,如https://docs.djangoproject.com/en/dev/howto/custom-management-commands/中所述,我创建了B/manangement/commands
的目录结构并编写了一个自定义模块。
当我运行python manage.py时,它一直在抱怨Unknown command
。但是,如果我将此命令移动到其他应用程序,即文件夹A/management/commands
,然后运行python manage.py <command>
,它将无缝工作。
你知道我该怎么解决吗?
正如@Babu在评论中所说,看起来您可能没有将应用程序添加到
INSTALLED_APPS
中。也有可能丢失了
management
和commands
文件夹中的__init__.py
文件(在python模块中是必需的)。或者,(很抱歉这么说)您可能拼错了“management”或“commands”,甚至是您正在运行的命令的名称。
很可能,您的设置中没有包含app B.py
如果您只是在没有指定命令的情况下运行
python manage.py
,它将打印Django可以找到的命令列表。这有助于排除命令名拼写错误的情况,但无法回答您是否同时生成了
management
和commands
两个包,或者应用程序B没有在您的settings.INSTALLED_APPS
中列出的问题似乎您还没有在我们的设置中的已安装的应用程序中注册您的应用程序B。 您还需要在两个文件夹(管理和命令中添加一个\uu in it_uuu.py文件,使其成为一个包。请确保正确拼写文件夹名称。
相关问题 更多 >
编程相关推荐