如何在多个应用程序中编写自定义Django manage.py命令

2024-04-25 23:37:05 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我的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>,它将无缝工作。

你知道我该怎么解决吗?


Tags: 项目djangopyhttpsdev命令com应用程序
3条回答

正如@Babu在评论中所说,看起来您可能没有将应用程序添加到INSTALLED_APPS中。

也有可能丢失了managementcommands文件夹中的__init__.py文件(在python模块中是必需的)。

或者,(很抱歉这么说)您可能拼错了“management”或“commands”,甚至是您正在运行的命令的名称。

很可能,您的设置中没有包含app B.py

如果您只是在没有指定命令的情况下运行python manage.py,它将打印Django可以找到的命令列表。

这有助于排除命令名拼写错误的情况,但无法回答您是否同时生成了managementcommands两个包,或者应用程序B没有在您的settings.INSTALLED_APPS中列出的问题

似乎您还没有在我们的设置中的已安装的应用程序中注册您的应用程序B。 您还需要在两个文件夹(管理命令中添加一个\uu in it_uuu.py文件,使其成为一个包。请确保正确拼写文件夹名称。

相关问题 更多 >