11

想象一下,我的 django 项目中有两个或多个应用程序,当我只有一个应用程序时,我能够成功编写和执行自定义 manage.py 命令,A.

现在我有一个新的应用程序,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>,它会无缝运行。

知道如何解决这个问题吗?

4

3 回答 3

17

正如@Babu 在评论中所说,看起来您可能没有将您的应用添加到INSTALLED_APPS您的settings.py.

也有可能您缺少and文件夹中的__init__.py文件(python 模块中需要的文件)。managementcommands

或者,(很抱歉)您可能拼错了“管理”或“命令”,甚至拼错了您正在运行的命令的名称。

于 2013-07-31T08:11:39.123 回答
1

很可能,您没有在 settings.py 中包含应用 B

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

这可以帮助排除拼写错误的命令名称,但不能回答您是否制作了management两个commands包,或者应用 B 根本没有在您的settings.INSTALLED_APPS

于 2013-09-04T17:37:45.970 回答
1

看起来您还没有在我们的settings.py中的INSTALLED_APPS中注册您的应用B。您还需要在两个文件夹(managementcommands )中添加一个__init__.py文件以使其成为一个包。确保正确拼写文件夹名称。

于 2017-11-23T05:15:11.453 回答