django model配置订单号自动生成,以年月日命名
时间: 2023-07-03 19:17:26 浏览: 163
可以在Django的Model中定义一个自定义的方法来生成订单号,并在Model中定义一个CharField字段来存储订单号,具体代码如下:
```python
import datetime
class Order(models.Model):
order_no = models.CharField(max_length=20, unique=True)
def generate_order_no(self):
now = datetime.datetime.now()
order_no = now.strftime('%Y%m%d%H%M%S')
return order_no
def save(self, *args, **kwargs):
if not self.order_no:
self.order_no = self.generate_order_no()
super(Order, self).save(*args, **kwargs)
```
这里我们定义了一个CharField字段来存储订单号,长度为20,并且设置了唯一性,确保订单号的唯一性。在Model中定义了一个自定义的方法`generate_order_no`,用于生成订单号,该方法根据当前时间生成一个订单号,并返回。在重写save方法时,判断订单号是否为空,如果为空则调用`generate_order_no`方法生成订单号,并保存到数据库中。这样就可以达到自动生成订单号的目的,并以年月日命名。
阅读全文