python自动生成编号

model

# 编号自增字段
class Bh(BaseModel):
    key = models.CharField(null=True, max_length=128, verbose_name="唯一值", db_index=True, unique=True)
    bh = models.IntegerField(verbose_name="编号", db_index=True)

    class Meta:
        ordering = ['key']
        db_table = 'project_bh'
        verbose_name = '编号自增'

生成编号的方法

from reclamation.models import Bh
from utils.exceptions import APIException


def get_bh(key):
    for i in range(3):
        obj, created = Bh.objects.get_or_create(key=key)
        raw_bh = obj.bh
        record_count = Bh.objects.filter(key=key, bh=raw_bh).update(bh=raw_bh + 1)
        if record_count == 1:
            return raw_bh + 1
    raise APIException(message="配号错误,请重新获取", code=51)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值