Python Django自动为现有数据库表创建主键

Python Django自动为现有数据库表创建主键,python,mysql,django,legacy-database,Python,Mysql,Django,Legacy Database,我有一个现有的数据库,我正试图访问与Django。我使用python manage.py inspectdb为数据库创建模型。目前,我可以将模型导入python shell,但是当我尝试以任何方式访问任何实际对象时,我会遇到以下错误OperationalError:(1054,“字段列表”中的未知列'some_table.id')。我看到数据库中的表实际上没有id字段。我怎样才能解决这个问题?我是否需要更新Meta类中的managed字段并运行迁移,以便它可以自动创建此字段?来自Django文档

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

来自Django文档:此功能是作为快捷方式,而不是作为最终模型生成。有关更多信息,请参阅inspectdb的文档。(参考资料:)

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

id = models.IntegerField(primary_key=True)

警告:我肯定会创建一个数据库副本来玩弄它,而不是原始数据库。这可能需要一些尝试和错误才能正确。在您完全确定正确后,您可以更改
Managed=True
,但要非常小心

好极了!谢谢因此,我想如果我确定表中的现有字段是否应该是主键,我会将primary_key属性设置为true?如果您需要更多帮助,请告诉我们,这可能会很棘手(我自己只做了两次),因此一定要小心使用源数据!如果有机会,请将答案标记为正确?