繁体   English   中英

在Django中设置替代pk

[英]Set alternative pk in Django

我想让Django为一个Model生成6位以上的数字ID。 我不想从零开始,但我希望此ID清晰易读。 这样的好例子例如: 658975

怎么做?

我已经试过了:

class MyUUIDModel(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

但是uuid生成庞大的序列,这对用户不友好。

您有什么建议吗? 设置自动增量pk的最小数量可能就足够了。

您不能简单地使用pk +随机数来向用户显示并保持其余逻辑相同吗?

否则,您将如何创建从1000开始的主键?

为此编写一个迁移。

将主键设置为从100000开始的最佳选项。 例如(MySQL),

ALTER TABLE django_app_table_name AUTO_INCREMENT = 100000

由于这些命令取决于数据库供应商,因此最好使用Django迁移文档编写我们自己的自定义迁移。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM