首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Django处理遗留数据库中的主键字段

问使用Django处理遗留数据库中的主键字段
EN

Stack Overflow用户
提问于 2015-05-30 10:54:50
回答 1查看 1.7K关注 0票数 1

我必须为active MySQL数据库创建一个简单的CRUD面板。当我试图迁移我的应用程序时,我会收到以下错误:

AssertionError: A model can't have more than one Autofield

我在Django书第18章中读到了以下内容:

每个生成的模型对于每个字段都有一个属性,包括id主键字段。但是,请记住,如果模型没有主键,Django会自动添加id主键字段。因此,您需要删除如下所示的任何行: id = models.IntegerField(primary_key=True)不仅这些行是多余的,而且如果您的应用程序要向这些表中添加新的记录,它们也会导致问题。

对于这个字段,我也有相同的场景:

代码语言:javascript
复制
id_call = models.BigIntegerField(primary_key=True)

但是,如果我遵循上述建议并删除这一行,使用此表的原始应用程序(而不是django应用程序)可能无法正常工作,因为它可能使用这个id_call字段从该表调用数据。

我怎样才能解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2015-07-20 09:53:17

对我来说,通过将models.AutoField(unique=True)更改为models.AutoField(primary_key=True),同时使用Wordpress数据库。

我在python manage.py --database='olddb' inspectdb > models.py生成的python manage.py --database='olddb' inspectdb > models.py中大约有4个。这里我又使用了一个db,比如olddb,如果您使用默认的db,那么您可以删除--database='olddb'。

我试着运行python manage.py runserver。所以我用上面提到的东西修正了每一行。

参考资料:-

https://docs.djangoproject.com/en/1.8/topics/db/models/#automatic-primary-key-fields

https://docs.djangoproject.com/en/1.8/topics/db/multi-db/#

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30545259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档