7

我有一个正在尝试使用 Django 访问的现有数据库。我曾经python manage.py inspectdb为数据库创建模型。目前我可以将模型导入 python shell 但是当我尝试以任何方式访问任何实际对象时,我会收到此错误OperationalError: (1054, "Unknown column 'some_table.id' in 'field list'")。我看到数据库中的表实际上没有id字段。我怎样才能解决这个问题?我是否需要更新Meta类中的托管字段并运行迁移,以便它可以自动创建此字段?

4

1 回答 1

7

来自 Django 文档:此功能是一种快捷方式,而不是确定的模型生成。有关详细信息,请参阅 inspectdb 的文档。(参考:https ://docs.djangoproject.com/en/1.8/howto/legacy-databases/ )

您将需要手动清理模型并进行迁移。添加“id”字段必须添加的行是:

id = models.IntegerField(primary_key=True)

警告:我肯定会创建一个数据库的副本来玩弄,而不是原来的。这可能需要您进行一些试验和错误才能正确。在你完全确定你做对了之后,你可以改变Managed=True,但要非常小心!

于 2015-06-02T00:02:16.280 回答