南方司令部出人意料地从Django's撤走管理.py

2024-04-19 19:23:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在开发一个django应用程序,并成功地使用了South。由于某些原因,我无法再通过manage.py访问south命令:

$ python manage.py schemamigration appname
Unknown command: 'schemamigration'
Type 'manage.py help' for usage.

此外,manage.py help没有列出任何South命令。在

我仍然可以通过manage.py shell导入South,而South仍然在我的INSTALLED_APPS中。我在virtualenv中运行south0.7.6、Django 1.4.1和python2.7.3,我还尝试过不走运地重新创建virtualenv。有什么想法吗?在

解决方法:经过更多的修改,我注意到当我从settings.py > INSTALLED_APPS删除我的应用程序时,South功能返回。所以,我又调查了一些。。。在

我的LOGIN_REDIRECT_URL集使用reverse()查找。reverse()查找失败,因为admin.py试图导入我刚刚删除的模型。这就是我南方问题的根源。为了解决我的问题,我删除了admin.py中有问题的导入,但是我还测试了用try/except将我的全局变量包装在{}中,这同样有效。在

我觉得奇怪的是,manage.py在导入settings.py时阻塞,它会无声地失败。有没有办法改变这种行为?另外,有没有在settings.py中设置全局变量的最佳实践?在


Tags: appsinstalleddjangopy命令应用程序settingsmanage