Django:如何生成唯一的订单ID

问题描述 投票:-2回答:1

这是我的模型的样子。用户订购时。 django提供的订单ID很简单。像1,2,3 ..... 100。

class UserOrder(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='orders', 
           on_delete=models.CASCADE)
    cart = models.ForeignKey(Cart, related_name="orders", on_delete=models.CASCADE, null=True, 
           blank=True)
    date = models.DateTimeField(default=datetime.now)
    total_price = models.IntegerField(null=True, blank=True)
    note = models.TextField(null=True, blank=True)
    cancel_reason = models.TextField(null=True, blank=True)
    cancelled = models.BooleanField(default=False)
    confirmed = models.BooleanField(default=False)

    def __str__(self):
        return self.user.username 
django model id
1个回答
0
投票

您的问题定义不明确,但是我想我理解您的问题,您需要一个不简单的id(查找字段)。

您可以使用uuid,并将此uuid用于视图集中的所有查找,而不是由django顺序创建的id。在视图中类似lookup_field ='uuid'的东西。

import uuid

class UserOrder(models.Model):
     uuid = models.UUIDField(default=uuid.uuid4, unique=True, db_index=True, editable=False)

在此处[u0]了解有关uuid的更多信息

© www.soinside.com 2019 - 2024. All rights reserved.