2012-02-13 70 views
6

我正在使用mongoengine并且想要在设置后运行connect()(不在它们的内部as suggested in its docs)。这实际上更像是一个普遍的问题,即如何在所有设置加载后立即运行代码。在Django设置后立即运行启动代码? (也用于命令)

更新:我还需要管理命令的解决方案。常见的方法是添加一个中间件,但是例外情况为MiddlewareNotUsed或将代码添加到根urls.py,但两者都不适用于命令。

+3

这有帮助吗? http://stackoverflow.com/questions/2781383/where-to-put-django-startup-code – ustun 2012-02-13 11:42:50

+0

@ustun,如果你可以让你的评论作为答案,我会接受它。 – Andrei 2012-02-13 11:50:04

+1

看看下面的问题,它应该帮助: http://stackoverflow.com/questions/2781383/where-to-put-django-startup-code – ustun 2012-02-13 11:50:49

回答

5

类似启动的代码的正常位置在urls.py中(当你需要设置已经被加载时)。 Django现在还没有一个好点。 (有一个gsoc学生在2011年工作过的“应用重构”分支,但它并没有被合并到核心django中。这个“应用重构”包含了一个解决你的问题的方法,但是这样做并不能解决你的问题,但那不会对你没有帮助......)

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

这个可悲的是Django的几个弱点之一。幸运的是没有那么多:-)

相关问题