有没有办法将新Django对象的id值设置为以某个值开始?

时间:2011-12-08 14:08:08

标签: django

有没有办法在Django中为对象设置id值的计数器?

例如,我有一组对象'视频'我下次创建类型'视频'的对象时,目前处于id = 100它将是id = 101。但是,我希望所有新创建的Video对象都以id = 2000开头。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:16)

您可以在创建对象时指定ID,只要在保存之前执行此操作:

new = Video()
new.id = 2000
new.save()

你可以只计算你想要的ID - 尽管我不确定Django的自动ID字段有什么问题;)

答案 1 :(得分:4)

您可以创建一个夹具,在ID = 1999的数据库中创建一个虚拟行。下一个自动生成的ID将是2000。

这个解决方案可能取决于你的数据库后端到你离开的地方恢复了#39;。至少MySql和PostgreSQL这样做(我想每个后端都会这样做)。

还有MySql的解决方案(据我所知),它包含一个SQL语句ALTER TABLE tbl AUTO_INCREMENT = 100;

不过,那不再是数据库不可知的了。