Django添加管理命令,而不需要作为app安装



我创建了一个用于django的包,它的主要特性可以通过管理命令访问。然而,为了使管理命令可以访问,django似乎坚持要把这个包作为一个应用程序列在INSTALLED_APPSsettings.py中。

在进行集成测试时,此应用程序仅作为构建过程的一部分使用。它甚至不需要安装在开发人员的机器上,更不用说安装在我们的生产环境中了。然而,由于它需要在settings.py的安装应用程序,它也蔓延到requirements.txt,因为它突然破坏构建,无论它没有安装。

是否有一种方法可以注入管理命令,而不需要将包安装为完整的应用程序?

或者:是否有一种标准/推荐的方式使tox以不同于通过管理命令的方式使用命令?

一种解决方案是为构建过程添加一个单独的settings.py,该过程将包含此命令的应用程序添加到INSTALLED_APPS中。然后你可以运行manage.py mycommand --settings=build_settings或其他。

设置文件本身可以像这样简单:

from main_settings import *
INSTALLED_APPS += ['myapp']

最新更新