我正在尝试让 South 工作 - 它在我的电脑上运行良好,但我很难将其部署到我的网络主机上。
现在看来,我为从 INSTALLED_APPS 添加/删除项目所做的任何更改都不会被 syncdb
或 diffsettings
拾取。我已将 south
添加到我的 INSTALLED_APPS 列表中,但当我运行 syncdb
时,并未创建它所需的表。如果我更改其他设置,它们就会被选中,只是 INSTALLED_APPS 似乎不起作用。
如果我运行
from south.db import db
从我使用 manage.py shell
获得的 shell 中,我没有收到任何导入错误,所以我认为 south
所在位置没有问题。我尝试删除所有其他应用程序(Django 标准应用程序除外),并且当我运行 syncdb
时仍然会创建它们的表。
即使我完全删除 INSTALLED_APPS,当我运行 manage.py diffsettings 时,我仍然会得到 INSTALLED_APPS 的旧列表。
你知道我做错了什么吗?
谢谢
多姆
最佳答案
如果您为应用程序编写迁移,syncdb 将无法工作。 你必须使用
manage.py migrate
syncdb 不适用于使用 South 进行迁移的应用程序。这些应用程序模型的变化仅根据南迁历史才会被注意到。
关于python - Django 没有获取对 settings.py 中 INSTALLED_APPS 的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/901061/