Django设置后立即运行启动代码?(也用于命令)

And*_*rei 6 django settings signals

我正在使用mongoengine并希望connect()在设置之后运行(不在其文档中建议的内部).这实际上更像是如何在加载所有设置后立即运行代码的一般问题.

更新:我还需要管理命令的解决方案.常见的方法是添加具有异常的中间件MiddlewareNotUsed或向root urls.py添加代码,但两者都不适用于命令.

Rei*_*ees 6

启动式代码的正常位置在urls.py中(当您需要已经加载的设置时).Django还没有一个好位置.

(有一个gsoc学生在2011年工作的"app refactor"分支,但它还没有合并到核心django中.这个"app refactor"包含了解决你的问题的方法,但这对你没有帮助...)

你提到管理命令也需要它.这是你自己的管理命令吗?没有什么能阻止你在那里导入urls.py,是吗?

遗憾的是,这 Django为数不多的弱点之一.幸运的是没有那么多:-)