django 默认ID列的问题

skrifer 发布于 2013/05/17 07:02
阅读 2K+
收藏 0
RT,DJango 默认会在DB表里加一个ID的列名,这对零开始的项目来说没什么问题。
可是如果从原有的数据库inspectdb 的话,就有问题了,有些表没有ID列,也没有主键。
一旦用objects.all()/filter()/get()等去捞数据的话,会出错或者什么也捞不到
提示 XXX表.ID 不正确,现在自己会的最简单的作坊是 在表里加一个无意义的ID列。可是我又不想改动DB
期望应用里有没有一些高级的方法可以避免此类问题,比如说 在执行all()等方法时可以设置返回的列名
e.g :objects.all().fields('name','age')之类的。求教高人了!
加载中
0
XuYuan
XuYuan
没有主键是不行滴
0
hnynes
hnynes
可以先备份下之前的数据库,然后逐个给没有ID的表加上ID这个列.  这个没有办法啊.

当然你也可以考虑将之前的表结构移到你的models.py中,然后指定一个新的数据库,再把你之前的数据导出,再导入到这个新的数据库,  感觉这些都应该是可行的.
没用过其它方法, 欢迎有更好的方案分享.

返回顶部
顶部