在django模型中为id设置自动增量初始值

时间:2013-05-21 06:34:19

标签: python mysql django models

我有一个只有一个领域的模型。 名。

class City(models.Model): <br>
    name = models.CharField(max_length=30)

Django自行设置id,所以我最终在SQL中使用iddescription字段。

id字段总是递增1。 我想从1000开始,然后再加1。

有没有办法在Django中这样做?

2 个答案:

答案 0 :(得分:3)

我知道这个问题已经过时了,但是我发布的方法适用于那些在搜索结果中找到这个问题的人,并且需要一个很好的解决方案来处理最近的Django版本(即Django&gt; = 1.8):

按照记录here创建数据迁移。此解决方案将在您迁移应用程序时运行(并且可能作为部署策略的一部分),并允许您编写满足数据库特定需求的代码。

我认为这是在Django&gt; = 1.7中设置自动递增数据库字段的初始值的最简洁方法,因为它利用了标准的Django迁移,并且没有以可能无法工作的方式劫持框架的其他功能在将来。

答案 1 :(得分:0)

您可以使用initial data为您的模型ID提供1000.我认为如果第一个模型PK为1000 django将继续1001。

或者您创建一个名为custom_id的属性,该属性始终为1000 + id。这样,您的数据库中就会有一个额外的字段,但它会起作用。