我在SO上看过几个问题和答案,大多数是三岁或三岁以上,我看了Django documentation(希望我没有错过)。我必须有一个9位以上的id号码。大多数回复是在数据库中做到这一点。我猜这意味着在Django中创建模型,然后返回数据库并更改用列上的新起始/下一个值属性创建的Django id列。
如果不能如何从Django创建数据库表, Code First ,这允许我创建一个id列以100000000开头的表?而且,它是用Django中的库存模型对象方法完成的。我真的不想做一个特别的黑客攻击。如果是这种情况,我可以去数据库并修复列。我试图坚持Django的Code First想法(虽然我更喜欢数据库,但是害怕使用inspectdb会弄得一团糟。)
编辑:我不想使用UUID。我相信BigAutoField是最好的。
答案 0 :(得分:2)
您应该可以分两步完成此操作:
1 - 在模型定义中使用primary_key=TRUE
明确指定主键。有关详细信息,请参阅Django docs。然后,您可以为主键指定BigAutoField
或其他任何类型。
2A - 如果你预先填充数据库,只需在你的灯具中设置pk: 100000000
。
OR
2B - 如果您没有预先填充数据库,请使用Django模型迁移操作RunSQL作为详细here。对于SQL使用ALTER TABLE tableName AUTO_INCREMENT=100000000
。