docs对这个问题保持沉默。命令是否会按顺序注册,后面的应用程序(按 settings.INSTALLED_APPS 顺序)会覆盖以前的命令(无论是来自其他应用程序的自定义命令还是内置的 Django 命令)?
请您参考如下方法:
从当前的 1.7 版本开始,答案是肯定的。
参见 this line在 Django 源代码中查看实现逻辑的位置:按照 settings.INSTALLED_APPS 元组的应用程序顺序,每个应用程序的管理命令都添加到命令字典(使用 Django 的内置-在命令 here 中),任何给定的命令名称都有一个插槽,因此最后一个添加的命令会覆盖任何以前的应用程序(或 Django 的内置)具有相同名称的命令;执行命令时(代码 here),Django 使用上面的字典来决定实际使用哪个命令逻辑。
请注意,我还没有找到这方面的任何文档,因此从技术上讲,它应该被视为非官方行为。
