首页 > 解决方案 > 如何创建特定的 django-model 字段,每天包含一个日期和唯一的数字?

问题描述

我在 django 上创建了一个网上商店,但遇到了以下问题。

如何为订单编号创建一个 django 模型字段,每天包含一个日期和唯一编号?

此选项在作业中进行了描述,其他选项不适合我。

UPD: 订单号应如下所示:yyyymmdd + 每天唯一订单数。第二天,这个数字将从头开始。

标签: django

解决方案


结果,我变成了这样。也许有人会派上用场。

from django.db import models
from django.utils.timezone import datetime

def get_num(date=datetime.now()):
    date = date.strftime('%Y%m%d')
    if Order.objects.all().last():
        last_order = Order.objects.all().last()
        if last_order.number[0:8] == date:
            num = int(last_order.number[8::]) + 1
        else:
            num = 1
    else:
        return f'{date}1'
    return(f'{date}{num}')

class Order(models.Model):

    number = models.CharField(max_length=12, default=get_num, verbose_name='номер заказа')
    ...

推荐阅读