我在模型中有一个字段"CharField“,当用户创建一个项目时,如何使IntegerField/CharField成为Django中的默认自动递增字段为1000001,1000002?或者year
+ 00001,00002,0003等等,我不能有多个AutoField,而且这个字段已经有了很多数据。
发布于 2018-10-17 02:15:52
解决方案是将您的字段设置为自动字段。如果将其设置为自动字段,django将不会添加导致错误的主键。
不能有一个以上的AutoField。您需要显式地将主键指定为
field = models.AutoField(primary_key=True) # or False
从1000001开始计数最好的方法是修改迁移文件。这取决于您正在使用的数据库。如果你使用Postgres,那么它看起来是这样的。在迁移中编辑操作或运行SQL命令DB命令提示符:
operations = [
migrations.CreateModel(...),
# mysql specific
migrations.RunSQL('alter table tablename auto_increment=1000001'),
]
alter命令将根据您正在使用的数据库进行更改。
如果您想要一个自定义的AutoField,那么您可以创建一个char字段并使其可编辑为false。然后手动指定值。参考:https://techstream.org/Web-Development/Custom-Auto-Increment-Field-Django
https://stackoverflow.com/questions/52850563
复制