如何自定义 Django 主键自增的起始值?

2017-03-09 09:32:01 +08:00
 ansheng

这是一个很诡异的问题,搜了大半天,貌似得到的答案就是 Django 没有这个功能,问问小伙伴们可有折中的解决方案呢?

场景如:

订单的 ID 唯一且从 100000000 开始,自增+1 ,用的是 django 的 model ,不能直接修改数据库。

2547 次点击
所在节点    Python
6 条回复
glasslion
2017-03-09 09:54:38 +08:00
在 建表的 migration 里加个 ALTER TABLE 的 SQL
ansheng
2017-03-09 10:13:10 +08:00
@glasslion 这个确实是可以,但是已经违反了 django model 的定义,所以还是希望只在 model 中进行实现,而不修改数据库和 migration 中的 sql 文件
wph95
2017-03-09 11:10:01 +08:00
我印象里 django (1.4 的源码) 的实现,创建新数据 sql insert 不带 prime key ,
我自己实现的办法是 改 数据库里这个表的 auto increment 。
ansheng
2017-03-09 11:11:31 +08:00
@wph95 可还有其他解决方案呢?
lgh
2017-03-09 13:09:27 +08:00
ansheng
2017-03-09 17:35:01 +08:00
@lgh 刚用到这个用于 django 的测试,你是要我预先填充这么多数据?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/346034

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX