You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改代码实现从000001开始的无MAG前缀自增发票编号

发票编号生成代码调整方案

调整后完整代码

def increment_invoice_number(self):
    last_invoice = Transaction.objects.all().order_by('id').last()
    if not last_invoice:
        # 无历史数据时返回初始6位编号
        return '000001'
    invoice_no = last_invoice.invoice_no
    # 直接将已有编号转整数,不需要拆分前缀
    invoice_int = int(invoice_no)
    new_invoice_int = invoice_int + 1
    # 转字符串后用zfill补前导零,固定6位长度
    new_invoice_no = str(new_invoice_int).zfill(6)
    return new_invoice_no

invoice_no = models.CharField(max_length=500, default=increment_invoice_number, null=True, blank=True)

核心改动说明

  • 删除了所有MAG前缀相关的拆分、拼接逻辑,编号不再包含额外前缀
  • 初始值从MAG0001调整为000001,满足起始编号要求
  • 新增zfill(6)方法自动补前导零,确保所有编号始终保持6位长度,不会随着数值增大出现位数变化的问题

内容的提问来源于stack exchange,提问作者Osama Daghestani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:36:00