django - 由 Django Autofield 生成的唯一和自定义 order_id
问题描述
我正在构建一个电子商务解决方案,为每个订单存储唯一和自定义的 order_id。唯一性是由于 1 个特定客户的订单分离。定制部分是为了区分不同的供应商。例如:
供应商名称 = foo
order1: order_id = foo-20202907-001
order2: order_id = foo-20202907-002
...
供应商名称 =酒吧
order1: order_id = bar-20202907-001
order2: order_id = bar-20202907-002
...
order_is 的第一部分取决于供应商的名称。接下来,它将采用日期戳,最后它采用当天订单金额的自动递增字段。
我当前的订单模型:
class Order(models.Model):
order_id = models.AutoField(primary_key=True, editable=False)
customer_id = models.ForeignKey(User, on_delete=models.CASCADE)
Autofield 从 1 开始,每次下新时将其递增 1。当许多客户在不同的供应商处下不同的订单时,order_id 会变得非常混乱。为了我的支付系统中的唯一 ID,我需要类似上述 order_id 的东西。
我已经阅读了一些关于自定义唯一字段的文章,但我不知道什么是正确的方法。有没有办法做到这一点?
解决方案
根据文档,似乎 Django 确实涵盖了这一点:
如果您想指定自定义主键,请在其中一个字段上指定 primary_key=True。如果 Django 看到你明确设置了 Field.primary_key,它不会添加自动 id 列
所以我认为这取决于你如何处理你的主键。如果您想要自定义格式,您可以在此处查找有关自定义保存方法的更多信息。
推荐阅读
- github - Github 部署显示空白
- graphql - 问题在 apollo-graphql 中的突变中传递数组参数
- excel - TEXT 函数中的 $ 符号是什么意思
- marklogic - 元素词位置 - 概念问题
- python - markdown 未正确转换为 html
- css - Bootstrap:CSS 媒体查询不会覆盖原始 CSS
- r - 在 R 中的 cowplot::gridplot 中为子图添加标签
- algorithm - 最大和的动态规划方法
- python - 在 rasterio 中索引 numpy 数组和打开文件之间的权衡
- javascript - Ajax 查询响应成功但触发错误