我在models.py 文件中添加和删除了字段,然后运行manage.py syncdb。通常我必须退出 shell 并在 syncdb 执行任何操作之前重新启动它。然后即使在那之后,我在尝试访问管理页面时遇到错误,似乎我添加的某些新字段仍然没有显示在模型中:

Caught an exception while rendering: no such column: mySite_book.Title

最佳答案

Django 不会为您执行数据库迁移,即如果您添加新字段,Django 不会修改您的数据库架构。

您可以:

  • 删除更改​​的表并再次执行同步数据库。当您开发应用程序并且您的数据库中没有任何真实数据时,这是合理的。
  • 使用像 South 这样的迁移工具来执行数据库迁移(比如休眠更新脚本)。
  • 手动编辑数据库并为先前存在的表添加/删除适当的字段。
  • 关于python - 在 Django 中更改模型会导致数据库损坏?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2571337/

    10-11 20:14
    查看更多