开发者社区> 问答> 正文

django 默认ID列的问题? 400 报错

django 默认ID列的问题? 400 报错 RT,DJango 默认会在DB表里加一个ID的列名,这对零开始的项目来说没什么问题。
可是如果从原有的数据库inspectdb 的话,就有问题了,有些表没有ID列,也没有主键。
一旦用objects.all()/filter()/get()等去捞数据的话,会出错或者什么也捞不到
提示 XXX表.ID 不正确,现在自己会的最简单的作坊是 在表里加一个无意义的ID列。可是我又不想改动DB
期望应用里有没有一些高级的方法可以避免此类问题,比如说 在执行all()等方法时可以设置返回的列名
e.g :objects.all().fields('name','age')之类的。求教高人了!

展开
收起
爱吃鱼的程序员 2020-05-29 17:49:02 521 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    没有主键是不行滴######可以先备份下之前的数据库,然后逐个给没有ID的表加上ID这个列.  这个没有办法啊.

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

    2020-05-29 17:49:03
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载