我有一个现有的数据库,我试图用Django访问。我使用python manage.py inspectdb
为数据库创建模型。目前我能够将模型导入到python shell中,但是当我尝试以任何方式访问任何实际对象时,我收到此错误OperationalError: (1054, "Unknown column 'some_table.id' in 'field list'")
。我看到数据库中的表实际上没有 id 字段。我怎样才能解决这个问题?我是否需要更新 Meta 类中的托管字段并运行迁移,以便它可以自动创建此字段?
答案 0 :(得分:4)
来自Django文档:此功能用作快捷方式,而不是确定的模型生成。有关更多信息,请参阅inspectdb的文档。 (参考:https://docs.djangoproject.com/en/1.8/howto/legacy-databases/)
您需要手动清理模型并进行迁移。您必须添加的行才能添加" id"领域是:
id = models.IntegerField(primary_key=True)
警告:我肯定会创建一个数据库的副本来玩,而不是原始的。这可能会带你一些试验和错误来做对。在您确定自己做对了之后,您可以更改Managed=True
,但非常小心!