Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 设置django模型中id的自动增量初始值_Python_Mysql_Django_Models - Fatal编程技术网

Python 设置django模型中id的自动增量初始值

Python 设置django模型中id的自动增量初始值,python,mysql,django,models,Python,Mysql,Django,Models,我有一个只有一个字段的模型。 名字 class城市(models.Model): name=models.CharField(最大长度=30) Django自行设置id,因此我在SQL中以id和description字段结束 但是,id字段总是递增1。 我想从1000开始,然后增加1 在Django中有什么方法可以做到这一点吗?您可以使用从1000开始为您的模型提供ID。我认为如果第一个型号PK是1000,django将继续使用1001 或者您创建一个名为custom_id的属性,该属性始终为

我有一个只有一个字段的模型。 名字

class城市(models.Model):
name=models.CharField(最大长度=30)
Django自行设置
id
,因此我在SQL中以
id
description
字段结束

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

在Django中有什么方法可以做到这一点吗?

您可以使用从1000开始为您的模型提供ID。我认为如果第一个型号PK是1000,django将继续使用1001


或者您创建一个名为custom_id的属性,该属性始终为1000+id。这样,您的数据库中就有了一个附加字段,但它可以正常工作。

我知道这个问题很老,但我将此方法发布给那些在搜索结果中发现这个问题并需要为更新的Django版本(即Django>=1.8)提供良好解决方案的用户:

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


我认为这是在Django>=1.7中自动增加数据库字段的初始值的最干净方法,因为它利用了标准Django迁移,并且不会以将来可能不起作用的方式劫持框架的其他特征。您必须在MySQL级别使用

altertable tbl AUTO_INCREMENT=1000执行此操作。Django没有也不应该对此负责。我只是想问一下,如果Django有什么方法可以设置的话?因为,在另一个系统上,sync db没有帮助。您必须再次运行该脚本,改变TABLE tbl AUTO_INCREMENT=1000;对于15个字符:否。AutoField只是底层数据库结构的表示。Django无法控制,“我想从1000开始”-为什么??如果它是一个合成键,它的值就不重要了…@eggyal我有一个表(change_table),它有一个ID,从0开始,我必须为每个更改有另一个唯一的标识符,应该从1000开始。那么表中的每个条目都有两个ID,一个从1,2开始,另一个从1001开始的可见ID?我该怎么办?
class City(models.Model): <br>
    name = models.CharField(max_length=30)