python - Django 没有获取对 settings.py 中 INSTALLED_APPS 的更改

标签 python django

我正在尝试让 South 工作 - 它在我的电脑上运行良好,但我很难将其部署到我的网络主机上。

现在看来,我为从 INSTALLED_APPS 添加/删除项目所做的任何更改都不会被 syncdbdiffsettings 拾取。我已将 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 进行迁移的应用程序。这些应用程序模型的变化仅根据南迁历史才会被注意到。

South Migration Docs

关于python - Django 没有获取对 settings.py 中 INSTALLED_APPS 的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/901061/

相关文章:

Python 没有打开 .py 文件

python - 如何让 pytest 忽略名为 TestSomething 的类?

django - Google 如何使用 HTML5 url 抓取基于 Angular 的应用

Django:在 View 或模板中检测管理员登录

python - Django:如何对多个数据库执行数据库自省(introspection)?

python - 使用 Tkinter 将文本左对齐

c++ - Python:如何检查...?

python - 将 Matplotlib 饼图百分比标签覆盖为总和不等于 100% 的特定值

Django CSRF 验证

sql - django-admin.py 转储数据到 SQL 语句